Я пытаюсь создать простое меню Android Options внутри фрагмента с тремя различными параметрами. Я получаю сообщение об ошибке onCreate, в котором говорится: «savedInstanceState не может быть разрешен переменной». ошибка в setContentView, которая гласит: «Метод setContentView (int) не определен для типа« Настройки ». Ошибка, указывающая: «Метод makeText (Context, CharSequence, int) в типе Toast не применим для аргументов (Settings, String, int). Я видел пару обучающих программ, которые использовали меню так же, как я использую. ..can кто-то помочьОшибки простого меню Android
Вот класс Fragment:
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;
}
}
Где вызывающую активность для этого фрагмента – Ayub
Ну, в свой 'onCreate' метод вы указали переменную saveIstanceState, а не сохраненную. I'n'stanceState –
Вы, очевидно, взяли свой код из учебника, в котором вместо 'Fragment' используется' Activity'. Метод 'setContentView' не применяется к' Fragment' - вам нужно использовать 'onCreateView' вместо этого. Метод 'makeText (Context, CharSequence, int)', очевидно, ожидает, что 'Context' станет первым параметром, а' Fragment' не является 'Context'. В вашем вызове 'makeText' используйте' getActivity() 'вместо' this'. – Squonk