-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 回答