这里的布局文件就很简单。只是一个简单的按钮。ID为button1。
第一种:
1.找到按钮的Id.
Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(this);
但this指的是当前的activity,会报错。ALT+enter键实现View.OnClickListener接口。会自动实现click方法。源码如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clicklayout);
Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"@@@@@@@@@",Toast.LENGTH_LONG).show();
}
}
第二种:
同样需要找到按钮的Id
Button button= (Button) findViewById(R.id.button1);
利用button设置监听,并实现onclick方法。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clicklayout);
Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"@@@@@@@@@",Toast.LENGTH_LONG).show();
}
});
}
}
第三种:
这种方法要通过布局文件来实现。在<Button 内容/>中添加android:οnclick="click123"。click123可任意设定,是要实现的方法名。
然后在Mainactivity中实现click123方法。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clicklayout);
}
public void click123(View v){
Toast.makeText(MainActivity.this,"@@@@@@@@@",Toast.LENGTH_LONG).show();
}
}
第四种:
以内部类的方式来实现。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clicklayout);
Button button= (Button) findViewById(R.id.button1);
button.setOnClickListener(new myclick());
}
class myclick implements View.OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"@@@@@@@@@",Toast.LENGTH_LONG).show();
}
}
}