Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在方法调用中模拟OnOptions ItemSelected_Android_Android Layout_Statusbar_Android Menu - Fatal编程技术网

Android 在方法调用中模拟OnOptions ItemSelected

Android 在方法调用中模拟OnOptions ItemSelected,android,android-layout,statusbar,android-menu,Android,Android Layout,Statusbar,Android Menu,我在xml布局中有一个ImageView。ImageView有一个onClick方法 android:onClick="onHomeClicked" 当用户单击我的图像时,我希望它依次调用活动中的选项ItemSelected。我该怎么做 以下代码为homeMenuItem提供空值: MenuItem homeMenuItem; @Override public boolean onPrepareOptionsMenu(Menu menu) { homeMenuItem = menu.

我在xml布局中有一个ImageView。ImageView有一个onClick方法

android:onClick="onHomeClicked"
当用户单击我的图像时,我希望它依次调用活动中的选项ItemSelected。我该怎么做

以下代码为
homeMenuItem
提供空值:

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);
}

您没有
MenuItem
,任何包含选项ItemSelected()的逻辑都将失败(假设有多个选项)

因为您似乎需要共享代码,所以将该逻辑块移动到它自己的方法中,然后从
onHomeClicked()
onOptions ItemSelected()
调用该方法

乙二醇


您可能需要声明方法,并从
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
    }
    onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()) {
        case R.id.btn:
           youNewMethod();
        break;
        }
    }

    public void onHomeClicked() {
        youNewMethod();
    }

    private void youNewMethod(){
        // write your code here
    }