Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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
Java 获取选项菜单以执行操作_Java_Android - Fatal编程技术网

Java 获取选项菜单以执行操作

Java 获取选项菜单以执行操作,java,android,Java,Android,我制作了一个选项菜单,并试图让像保存和打开这样的按钮能够工作,并将文件保存到设备的内部存储器中。当我输入代码时,它表示无法应用“打开”和“保存”。它也给了我一个错误,说它需要一个意图,但我给它一个菜单项。我将如何着手使这成为一个意图并解决它?这是我的密码 import android.app.ActionBar; import android.app.Activity; import android.content.res.Resources; import android.os.Bundle;

我制作了一个选项菜单,并试图让像保存和打开这样的按钮能够工作,并将文件保存到设备的内部存储器中。当我输入代码时,它表示无法应用“打开”和“保存”。它也给了我一个错误,说它需要一个意图,但我给它一个菜单项。我将如何着手使这成为一个意图并解决它?这是我的密码

import android.app.ActionBar;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import static com.exaple.josh.unidrive.R.id.help;
import static com.exaple.josh.unidrive.R.id.list_item;
import static com.exaple.josh.unidrive.R.id.open;
import static com.exaple.josh.unidrive.R.id.save;
/** *由Josh于2015年1月31日创建。 */


基本上,您的
switch
语句在
onOptionsItemSelected
中是错误的,而且方法的签名也不正确

根据
onOptionsItemSelected
将MenuItem作为参数

像这样的东西可以完成这项工作:

@Override
public boolean onOptionsItemSelected(MenuItem item) {  //This method uses MenuItem as parameter
// Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.save_item_id:
            showToast("Save Clicked");
            return true;
        case R.id.open_item_id:
            showToast("Open Clicked");
            return true;
        return super.onOptionsItemSelected((MenuItem) item);
   }
}

其中
save_item_id
open_item_id
是您在
menuresource.xml
文件中为菜单项指定的id

item.getItem()
返回一个
int
。这个
int
是分配给该菜单项的
id
。当我尝试输入你告诉我的内容时,它在“item.getItemId()”上给了我一个错误
@Override
public boolean onOptionsItemSelected(MenuItem item) {  //This method uses MenuItem as parameter
// Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.save_item_id:
            showToast("Save Clicked");
            return true;
        case R.id.open_item_id:
            showToast("Open Clicked");
            return true;
        return super.onOptionsItemSelected((MenuItem) item);
   }
}