在控件中直接添加一个点击事件:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/callNumber" android:layout_below="@id/number" android:onClick="call"/>
在Java代码中获取控件,然后设置事件监听器,这里用的是匿名对象:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } private void addClick() { Button button =(Button) findViewById(R.id.btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("在这个里面添加处理逻辑"); } }); } }
那么问题来了,我在布局文件中设置了事件,又在Activity中的方法中用代码添加了事件,到时候这个事件到底是执行哪个呢?
或者是Activity实现了OnClickListener接口,然后在Activity里面,据说这种方法用的还挺多的:
Button button =(Button) findViewById(R.id.btn); button.setOnClickListener(this);
又可以是内部的匿名类,这个类实现了OnClickListener接口。