我正在尝试在片段中创建一个简单的Android选项菜单,其中包含三个不同的选项。我在onCreate上收到一条错误,指出“savedInstanceState无法解析为变量”。 setContentView上的错误说:“方法setContentView(int)未定义类型设置。”在Toast类型中显示“方法makeText(Context,CharSequence,int)的错误不适用于参数(Settings,String,int)。我看过几个教程,它们使用的菜单与我使用的方式相同。 ..有人帮忙吗?
这是片段类:
package com.mapping.application;
import android.app.Fragment;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.ImageView;
import android.view.MenuItem;
import android.widget.Toast;
public class Settings extends Fragment{
Button button;
ImageView image;
private NavigationDrawerFragment mNavigationDrawerFragment;
public Settings() {
// mCallback = null;
}
public static Settings newInstance() {
return new Settings();
}
@Override
public void onCreate(Bundle savedIstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.item1:
Toast.makeText(this, "Option1", Toast.LENGTH_SHORT).show();
return true;
case R.id.item2:
Toast.makeText(this, "Option2", Toast.LENGTH_SHORT).show();
return true;
case R.id.item3:
Toast.makeText(this, "Option3", Toast.LENGTH_SHORT).show();
return true;
}
}
答案 0 :(得分:0)
试试这个:
public class Settings extends Fragment{
Button button;
ImageView image;
private NavigationDrawerFragment mNavigationDrawerFragment;
public Settings() {
// mCallback = null;
}
public static Settings newInstance() {
return new Settings();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//This method is the one you use to add a view to a fragment
//onCreate doesn't need to be overridden for that
return inflater.inflate(R.layout.activity_main, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//This line is important! It tells the Activity that this fragment wants to
//participate on the creation of the menu
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.item1:
Toast.makeText(this, "Option1", Toast.LENGTH_SHORT).show();
return true;
case R.id.item2:
Toast.makeText(this, "Option2", Toast.LENGTH_SHORT).show();
return true;
case R.id.item3:
Toast.makeText(this, "Option3", Toast.LENGTH_SHORT).show();
return true;
}
}