1

メソッド内のボタンを押したテキストを取得するonClick方法。変数は使用できません。変更されるためです。

  Button[] mButtonsArray = new Button[MyArrayList.size()];
        for (Button b : mButtonsArray) 
        {
b = new Button(this);
            b.setText("name");
            b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            MyClass.MyMethod(ButtonName);
                        }
                });
}
4

7 に答える 7

4

onclickメソッド内でこれを使用します。

((Button) arg0).getText().toString();
于 2013-01-08T10:52:54.427 に答える
1

あなたはただ使うことができますsetTag()そしてgetTag()ここで、

b.setTag("name");

そしてそれを取得するには、

  b.setOnClickListener(
     new OnClickListener() 
    {
       @Override
        public void onClick(View arg0) 
        {
            String name = (String)arg0.getTag();
        }
    });
于 2013-01-08T10:50:54.723 に答える
1

あなたが使用することができsetTagますgetTag...

Button[] mButtonsArray = new Button[MyArrayList.size()];
    for (Button b : mButtonsArray) 
    {
b = new Button(this);
        b.setText("name");
        b.setTag("name");
        b.setOnClickListener(
                new OnClickListener() 
                {
                    @Override
                    public void onClick(View arg0) 
                    {
                        MyClass.MyMethod((String)arg0.getTag());
                    }
            });
}
于 2013-01-08T10:48:49.377 に答える
1

使ってみませんか

b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            MyClass.MyMethod(((Button) arg0).getText().toString());
                        }
                });

そうすれば簡単になります。

于 2013-01-08T10:50:25.390 に答える
0

次のコードを使用してください。

Button[] mButtonsArray = new Button[MyArrayList.size()];
        for (Button b : mButtonsArray) 
        {
b = new Button(this);
            b.setText("name");
            b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            Button b=(Button)arg0;
                            name=b.getText();
                        }
                });
}
于 2013-01-08T10:52:31.930 に答える
0
b.setOnClickListener(
         new OnClickListener() {
              @Override
              public void onClick(View arg0) {
                   String name = ((Button) arg0).getText().toString();
              }
});
于 2013-01-08T10:53:27.610 に答える
0

以下のようにボタン型に変換することで、arg0 で getText() を使用して取得できます。

   b.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View arg0) 
 {
  Button btn = (Button)arg0;
  if(btn != null)
MyClass.MyMethod(btn.getText());
  }

});

于 2013-01-08T10:54:17.060 に答える