2010-08-23 69 views
6

我现在遇到问题setOnClickListener按钮setonclicklistener错误

当我把这个下面一行:

button.setOnClickListener(this); 

并运行应用程序,它不运行,并显示一条消息,“应用程序强行关闭”。

请问我可以在Android 2.2中设置button onclick事件吗?

+0

请共享代码和错误日志:) – 2010-08-23 05:50:03

回答

7

看看下面的代码对你的作品...

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

记得在末尾添加});

+3

非常感谢你的答案。我得到了解决方案。其实我是在闪屏编码页面上放置按钮onclicklistener的代码。 谢谢 – chandu 2010-08-25 05:49:40

4

对于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(); 

     }  
} 
} 

}

2

尽管它已经很长一段时间,认为它可以帮助其他人谁都有这个问题,为了让它正确,我花了很多试验。但我认为最终解决了我的问题是将layout的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角度来看,你会看到,错误的原因是空指针异常,这ofcourse被显示,因为点击没有设置。纠正我,如果我错了。

+1

我想纠正自己。我不认为上述是正确的解决方案。如果有人正在得到一个NullPointerException,即使按钮已经使用findViewById正确地赋值,即'Button button =(Button)findViewById(R.id.somebutton);',那么我会建议,清理当前的构建和重建。它发生在我身上几次。 – 2011-05-30 15:47:43

4

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

public class MainActivity extends Activity implements OnClickListener ... 
2

View.onClickListener代替Button on ClickListener

0

检查类定义有implements OnClickListener