我在xml布局中有一个ImageView。 ImageView有一个onClick方法。
android:onClick="onHomeClicked"
当用户点击我的图片时,我希望它依次在活动中调用onOptionsItemSelected
。我该怎么做?
以下代码为homeMenuItem
提供了null:
MenuItem homeMenuItem;
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
homeMenuItem = menu.findItem(android.R.id.home);
super.onPrepareOptionsMenu(menu);
return true;
}
public void onHomeClicked(View view) {
onOptionsItemSelected(homeMenuItem);
}
答案 0 :(得分:1)
你没有MenuItem
,无论逻辑onOptionsItemSelected()
包含什么都会失败(假设有多个选项)。
由于您似乎需要共享代码,请将该逻辑移动到自己的方法,然后从onHomeClicked()
和onOptionsItemSelected()
调用该方法。
例如
private void mySharedMethod (){
//implementation
}
public void onHomeClicked (View v){
mySharedMethod();
}
public boolean onOptionsItemSelected (MenuItem item){
switch (item.getItemId ()){
case android.R.id.home:
mySharedMethod();
return true;
default:
return super.onOptionsItemSelected (item);
}
}
答案 1 :(得分:0)
可能您需要声明方法并从onOptionsItemSelected
和onHomeClicked
onOptionsItemSelected(MenuItem item){
switch(item.getItemId()) {
case R.id.btn:
youNewMethod();
break;
}
}
public void onHomeClicked() {
youNewMethod();
}
private void youNewMethod(){
// write your code here
}