2017-02-06 12 views
0

私は動的UIを構築しようとしていますが、ボタンを押すたびにonClickメソッドを追加すると、以前のアクティビティに戻ります。どのようにそれを修正するための任意のアイデア?Android:onClickが私に戻るアクティビティ

私のボタンのコード:関係なく、(たとえ全く何もない場合)、ここで何が起こるのか、それはまだ」勝っていないが、(addMenu方法は、活動のクラスで実行されることはありません)

<Button 
    android:text="New Menu" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/newButton" 
    android:layout_weight="1" 
    android:onClick="addMenu"/> 

ここでは私のaddmenuコードですトンの仕事私は私の以前の活動に戻ってボタンを押すたび

public void addMenu() 
{ 
    LinearLayout layout = (LinearLayout) findViewById(R.id.backLayer); 
    Button newButton = new Button(this); 
    newButton.setText("menu "+menu); 
    layout.addView(newButton); 
    menu++; 
} 
+0

を試してみてください? – Zach

+4

はonClickメソッドの実装を示していますか? – Yupi

+0

あなたのJavaコードを表示してください –

答えて

0

あなたのアプリのようなサウンドがクラッシュして再起動しています... logcatを読んで、あなたのメソッドシグネチャが間違っている行が表示されます。

android:onClick="addMenu"は、方法がpublic void addMenu(View v)である必要があります。

または、Javaを使用してボタンリスナーを設定してを削除してください。

findViewById(R.id.newButton).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     addMenu(); 
    } 
} 
+0

Viewをパラメータとして固定します。ありがとう! –

+0

それを聞いてうれしいです。あなたは[答えを受け入れる](//stackoverflow.com/help/someone-answers)によってあなたの感謝を示すかもしれません。 –

0

あなたaddMenu方法を投稿することができ、この

/** 
* @param v android:id="@+id/newButton" 
*/ 
public void addMenu(View v) 
{ 
    LinearLayout layout = (LinearLayout) findViewById(R.id.backLayer); 
    Button newButton = new Button(this); 
    newButton.setText("menu "+menu); 
    layout.addView(newButton); 
    menu++; 
}