Ich versuche, einen Alarmdialog zu zeigen, wenn ich ein bestimmtes Listenelement auswähle, während die anderen ein neues Fragment öffnen würden. Nach dem Einfügen des Alreat-Dialogfeldcodes wird jedoch ein Fehler zurückgegeben. Ich verstehe nicht, warum ich diesen Fehler bekomme, wenn 'Absicht' bereits initialisiert wurde. Was kann getan werden, um dieses Problem zu lösen?So zeigen Sie den Alarmdialog für bestimmte Listenelemente an
Variable 'Absicht' könnte nicht erreicht wurden
initialisiert
FragmentFruitChooser
public class FragmentFruitChooser extends ListFragment {
public FragmentFruitChooser() {
// Required empty constructor
}
/**
* Whether or not the activity is in two-pane mode, i.e. running on a tablet
* device.
*/
public boolean mTwoPane;
public static FragmentFruitChooser newInstance() {
return new FragmentFruitChooser();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_fruit_chooser, container, false);
initialize();
return view;
}
List<Fruits> list = new ArrayList<>();
private void initialize() {
String[] items = getActivity().getResources().getStringArray(R.array.fruit_names);
String[] itemDescriptions = getActivity().getResources().getStringArray(R.array.fruit_descriptions);
for (int n = 0; n < items.length; n++){
Fruit fruit = new Fruit();
fruit.setID();
fruit.setName(items[n]);
fruit.setDescription(itemDescriptions[n]);
list.add(fruit);
}
FruitListAdapter mAdapter = new FruitListAdapter(list, getActivity());
setListAdapter(mAdapter);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
View v = getView();
mTwoPane = getActivity().findViewById(R.id.detail_container) != null;
assert v != null;
ListView lv = (ListView)v.findViewById(android.R.id.list);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// get the adapter, then get the name from the adapter at that position
FruitListAdapter adapter = (FruitListAdapter) parent.getAdapter();
//reverse the selected state in data model
for (int i = 0; i < adapter.getCount(); i++) {
Fruit fruit = (Fruit)adapter.getItem(i);
fruit.setSelected(i == position);
}
Fruit fruit = (Fruit)adapter.getItem(position);
if (!mTwoPane) {
Intent intent;
if (fruit.getFruit().equals(view.getResources().getString(R.string.apple))) {
intent = new Intent(getActivity(), FruitAppleActivity.class);
} else if (fruit.getFruit().equals(view.getResources().getString(R.string.orange))) {
intent = new Intent(getActivity(), FruitOrangeActivity.class);
} else if (fruit.getFruit().equals(view.getResources().getString(R.string.tomato))) {
AlertDialog ad = new AlertDialog.Builder(getContext())
.create();
ad.setCancelable(false);
ad.setTitle("Seeded Fruit");
ad.setMessage("This fruit contains seeds.");
ad.setButton(context.getString(R.string.ok_text), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
ad.show();
} else {
intent = new Intent(getActivity(), FruitAppleActivity.class);
}
startActivity(intent);
}
}
});
super.onActivityCreated(savedInstanceState);
}
}
Was ist 'getSimpleName'? – MacaronLover
Es erhält einfach den Namen der 'Aktivität'. Sie können die Protokolle ignorieren, die ich eingeschlossen habe. –
Hat es funktioniert? Konnten Sie es reparieren? –