-1

すべてのボタンクリックイベントの共通メソッド用にコード化されたAndroidアプリでは、ここにコードがあります。

public void onCreate(Bundle  savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.filter);
        btnOne = (Button)findViewById(R.id.btnone);
        btnTwo = (Button)findViewById(R.id.btntwo);
        btnThree = (Button)findViewById(R.id.btnthree);
        btnFour = (Button)findViewById(R.id.btnfour);
        btnFive = (Button)findViewById(R.id.btnfive);
        btnSix = (Button)findViewById(R.id.btnsix);
        btnSeven = (Button)findViewById(R.id.btnseven);
        btnEight = (Button)findViewById(R.id.btneight);
        btnNine = (Button)findViewById(R.id.btnnine);
        btnTen = (Button)findViewById(R.id.btnten);

    OnClickListener listener = new OnClickListener()
    {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            doAction(v);
        }

    };

}

public void doAction(View v)
    {
        Object tagObject = v.getTag();
        int tag = (Integer) v.getTag();
        String val = (String) d.get(tag);
        if(val.equals("off"))
        {
            //select(tagObject);
            //d.put(tag, "on");

        Toast.makeText(getBaseContext(), "Button"+tag+"select", Toast.LENGTH_LONG).show();
    }
    else if(val.equals("on"))
    {
        //unSelect(tagObject);
        //d.put(tag, "off");
        Toast.makeText(getBaseContext(), "Button"+tag+"unselect", Toast.LENGTH_LONG).show();
    }   
}

このコードは私には機能しません。何かアイデアを教えてください.......よろしくお願いします

4

4 に答える 4

2

setOnClickListener最初にリスナーを宣言してから、ビューを呼び出すのはどうですか。

OnClickListener listener = new OnClickListener()
{

    public void onClick(View v) {
        // TODO Auto-generated method stub
        doAction(v);
    }

};
btnOne.setOnClickListener(listener);
btnTwo.setOnClickListener(listener);
...
于 2012-12-03T09:28:08.923 に答える
1

リスナーを宣言しましたが、ボタンごとにリスナーを設定するのを忘れました。すべてのボタンに対してこれを行います:btnOne.setOnClickListener(listener);

于 2012-12-03T09:28:34.540 に答える
0

ボタンでリスナーを設定する必要があります。

public void onCreate(Bundle  savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.filter);
    ...

OnClickListener listener = new OnClickListener()
{

    public void onClick(View v) {
        // TODO Auto-generated method stub
        doAction(v);
    }

};

btnOne.setOnClickListener();
btnTwo = (Button)findViewById(R.id.btntwo);
    ...

}
于 2012-12-03T09:28:24.400 に答える
0

クラスに実装View.OnClickListenerしてもらいます。

public class MyActivity extends Activity implements View.OnClickListener {

    Button button1, button2, button3;

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

        ...

        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
   }

   @Override
   public void onClick(View v) {
       switch(v.getId()) {
           case R.id.button1:
           // do stuff;
           break;
           case R.id.button2:
           // do stuff;
           break;
       ...
   }
}
于 2012-12-03T09:28:52.043 に答える