我有一个具有 onClick
属性的 View :
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hey"
android:onClick="showCity" />
对应这个方法的是:
public void showCity(View view) {
Intent intent = new Intent(this, CityActivity.class);
startActivity(intent);
}
但是,我有一个菜单项,我也想打开 CityActivity
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_city:
showCity();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
但是,这不起作用,因为它在调用 showCity()
时缺少 view
参数,我不确定在这种情况下它应该是什么.
如何修改它以在这两种情况下工作?
最佳答案
将您的 onOptionsItemSelected
代码替换为以下代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_city:
showCity(null);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
您 showCity
必须具有 View
参数,而不是您可以将 null
作为参数传递给您的 onClick()
方法。
关于android - onClick() 事件与参数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514331/