开发者

Button setonclicklistener error

I am having a problem right now with setOnClickListener.

When i put this following line:

button.setOnClickListener(this);

And run t开发者_JAVA技巧he application then it does not run and shows a message that "Application closed forcefully".

Could you please help me how I can set button onclick event in Android 2.2?


See if the code below works for you...

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

Remember to add }); at the end.


another possible reason ( happened to me ) is your activity must implement OnClickListener

public class MainActivity extends Activity implements OnClickListener ...


For defining button click event in android, You can try the below code:

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

       }    
}
}

}


Although it's been a long time, thought it might help others who have this problem, it took me many trials to get it right. But i think what finally solved my problem was setting the clickable attribute of a button in the layout's xml to true.
Code sample:

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

Further, if you would've looked at the DDMS perspective, you would've seen that the cause of the error was NullPointerException, which ofcourse was showing because clickable wasn't set. Correct me if i am wrong.


Type View.onClickListener instead of Button on ClickListener


Check if in the class definition there is implements OnClickListener

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜