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 ...