Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮设置ClickListener错误_Android_Events_Button_Onclick - Fatal编程技术网

Android 按钮设置ClickListener错误

Android 按钮设置ClickListener错误,android,events,button,onclick,Android,Events,Button,Onclick,我现在在使用setOnClickListener时遇到问题 当我写下这行时: button.setOnClickListener(this); 并运行应用程序,然后它不运行,并显示一条消息“应用程序强制关闭” 你能帮我在Android 2.2中如何设置按钮点击事件吗?看看下面的代码是否适合你 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View

我现在在使用
setOnClickListener
时遇到问题

当我写下这行时:

button.setOnClickListener(this);
并运行应用程序,然后它不运行,并显示一条消息“应用程序强制关闭”


你能帮我在Android 2.2中如何设置按钮点击事件吗?

看看下面的代码是否适合你

button.setOnClickListener(new OnClickListener() {              
  @Override
  public void onClick(View v) 
  {
      Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_LONG).show();
  }    
});      

记住添加
})结尾。

用于定义android中的按钮单击事件, 您可以尝试以下代码:

public class Main_Activity extends Activity {


    private Button myButton;

    @Override
    public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    myButton = (Button) findViewById(R.id.Button01);
    myButton.setOnClickListener(new Button_Clicker());
}

class Button_Clicker implements Button.OnClickListener
{
    @Override
    public void onClick(View v) {

       if(v==myButton)
       {
                Toast.makeText(v.getContext(), "Hello!! button Clicked", Toast.LENGTH_SHORT).show();

       }    
}
}

}

虽然这已经有很长一段时间了,我认为这可能会帮助其他有这个问题的人,但我花了很多时间才把它做好。但我认为最终解决问题的方法是将布局xml中按钮的clickable属性设置为true。
代码示例:

<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:clickable="true">
</Button>

此外,如果您查看DDMS透视图,您会发现错误的原因是NullPointerException,这当然是因为没有设置clickable而显示的。如果我错了,请纠正我。

另一个可能的原因(发生在我身上)是您的活动必须实现
OnClickListener

public class MainActivity extends Activity implements OnClickListener ...

键入
View.onClickListener
而不是单击Listener上的
按钮

检查类定义中是否有
实现onClickListener

请共享代码和错误日志:)非常感谢您的回答。我找到了解决办法。实际上,我是把按钮onclicklistener的代码放在启动屏幕编码页面中。谢谢,我想纠正我自己。我不认为以上是正确的解决办法。如果有人收到NullPointerException,即使使用findViewById正确分配了button,即
button button=(button)findViewById(R.id.somebutton),清理当前的构建和重建。这在我身上发生过几次。
public class MainActivity extends Activity implements OnClickListener ...