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
文件中为菜单项指定的iditem.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);
}
}