-1

我对以下代码有疑问:

OnClickListener button_listener = new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                 ImageButton ibutton = (ImageButton) v; 
                 if(player == 0)
                 {

                     ibutton.setClickable(false);
                     ibutton.setImageResource(R.drawable.crossnew);
                     //Toast.makeText(getApplicationContext(),v.getText(), Toast.LENGTH_SHORT).show();
                     player = 1;
                 }

                 else if(player == 1)
                 {
                     ibutton.setClickable(false);
                     ibutton.setImageResource(R.drawable.zeronew);
                     player = 0;
                 }
            }

        };

如何获取 buttonId 被按下;请帮帮我

4

4 回答 4

4
OnClickListener button_listener = new View.OnClickListener()
    {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(), Integer.toString(v.getId()), Toast.LENGTH_SHORT)
            .show();
        }
    };
于 2013-05-01T07:28:48.157 回答
0
if(v.getid() == R.id.testButton){
   Log.e("--->","click on testButton");
}
于 2013-05-01T07:27:02.590 回答
0

在您的点击中使用开关盒。

@Override
public void onClick(View v) {
switch(v.getid()) // get id 
{
    case R.id.button1 :
         // button 1 clicked
      break;
    case R.id.button2 :
          // button 2 clicked
      break;   
} 
}

编辑:

在显示 toast 的评论中,您正在使用应用程序上下文。

使用活动上下文代替应用程序上下文。通过 commonsware 检查答案

何时调用活动上下文或应用程序上下文?

于 2013-05-01T07:30:26.313 回答
0

在按钮单击功能中,只需使用

        @Override
        public void onClick(View v) {

                        int id = v.getId();
           }

这将达到您的目的。

于 2013-05-01T07:58:32.997 回答