Ich habe eine RecyclerView
, und in seinem Adapter habe ich etwas ähnliches zu einem OnLongClickListener
, die ich ein OnEntryLongClickListener
anrufen, um Verwirrung zu vermeiden.
Ich verwende eine AlertDialog
, um einen Dialog mit Listenelementen für verschiedene Aktionen anzuzeigen. Allerdings erhalte ich folgende Fehlermeldung:
E/AndroidRuntime: android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.Resources.getValue(Resources.java:2345)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:3910)
at android.content.res.Resources.getLayout(Resources.java:2161)
at android.view.LayoutInflater.inflate(LayoutInflater.java:413)
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
at android.support.v7.app.AlertController$AlertParams.createListView(AlertController.java:734)
at android.support.v7.app.AlertController$AlertParams.apply(AlertController.java:711)
at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:883)
at com.mycompany.myapp.ThisActivity$2.onEntryLongClick(ThisActivity.java:135)
at com.mycompany.myapp.adapter.RVAdapter$RVViewHolder.onLongClick(RVAdapter.java:41)
at android.view.View.performLongClick(View.java:5236)
Unten ist der entsprechende Code Ich verwende:
adapter.setOnEntryLongClickListener(new RVAdapter.OnEntryLongClickListener() {
@Override
public void onEntryLongClick(View view, int position) {
final MiniEntry thisEntry = entryList.get(position);
AlertDialog.Builder builder = new AlertDialog.Builder(getBaseContext());
builder.setTitle(thisEntry.getEntryName()););
builder.setItems(R.array.quickActions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Other code here
}
});
AlertDialog alert = builder.create(); // The error log points to this line
alert.show();
}
});
mRecyclerView.setAdapter(adapter);
Neben dem XML-I für das Array bin mit:
<string-array name="quickActions">
<item>Add to Favourites</item>
<item>More information</item>
</string-array>
Ich bin mir nicht sicher, ob es wichtig ist, aber ich importiere die AlertDialog
von android.support.v7.app.AlertDialog
(aus der v7 Support Library).
Wie kann ich dieses Problem lösen?
ändern 'getBaseContext()' in 'AlertDialog.Builder' Instanziierung zum Beispiel aktuellen Aktivität. Zum Beispiel 'new AlertDialog.Builder (ThisActivity.this)'. –
@MikeM. Das hat funktioniert! Könntest du das als Antwort posten und erklären, warum es auch das Problem gelöst hat - danke. –