# Buttons bei Klick hinzufügen



## vik0809 (17. Mai 2014)

Hallo, 

Ich würde gerne in Android beim Klick eines Add Buttons (welcher sich in der ActionBar befindet) neue Buttons zu einem Layout hinzufügen. Dazu möchte ich 2 Klassen verwenden: die main Klasse und die AddButton Klasse. 

In meiner Main Klasse rufe ich den Konstruktor des AddButtons auf: 

```
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        switch(id){
        	case R.id.add_button:
        		AddButton add = new AddButton(this);
        		break;
        	
        }
       
        return true;
    }
```

Meine AddButton Klasse sieht folgendermaßen aus: 

```
package com.unitnode;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;

public class AddButton extends Activity implements OnClickListener {
	private Collection collection;

	public AddButton(Collection collection) {
		this.collection = collection;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setButtonClickListener();

	}

	@Override
	public void onClick(View v) {

	}

	private void setButtonClickListener() {
		Button add = (Button) findViewById(R.id.add_button);
		Button text = new Button(this);
		LinearLayout buttonadd = new LinearLayout(this);
		buttonadd = (LinearLayout) findViewById(R.id.buttonadd);
		buttonadd.addView(text);
		setContentView(R.xml.buttonadd);

		add.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

			}
		});
	}

}
```

die 
	
	
	
	





```
setContentView()
```
 Methode verweist auf die AddButton.xml:

```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/buttonadd">
    

</LinearLayout>
```

Vielen Dank


----------



## Phash (19. Mai 2014)

Schön, dass du uns sagst, es Du so machst. 

Wenn du Fragen dazu hast, stell sie einfach


----------



## dzim (19. Mai 2014)

Ich vermute mal: Es geht nicht. Wundert mich aber auch nicht, wenn du eine weitere Activity anlegst (btw.: schau dir bitte noch mal ein paar Android-Tutorials an, das ist Grundlagenzeug...)

Was du möchtest: Auf deiner bestehenden Oberfläche einen weiteren Button anlegen.
Was du tust: Eine Instanz einer neuen Oberfläche anlegen (aber auch das vollkommen falsch).

Es ist in dem Zusammenhang wenig sinnvoll, eine Manipulation der aktuellen Oberfläche in eine andere Klasse auszulagern. Verwende dafür eine Methode in deiner Activity selbst. Und dein Code der "AddButton"-Klasse sieht reichlich wirr aus...

Schau dir mal Lars Vogels Tutorials an - sehr viel Information, aber auch recht hilfreich - so habe ich es gelernt... Und dann StackOverflow.

Android Development


----------

