I am having a problem right now with setOnClickListener
.
When i put this following line:
button.setOnClickListener(this);
Check if in the class definition there is implements OnClickListener
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.
Type View.onClickListener
instead of Button on ClickListener
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.
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();
}
}
}
}