Ho un RecyclerView
e nel suo adattatore ho creato qualcosa di simile a uno OnLongClickListener
, che sto chiamando uno OnEntryLongClickListener
per evitare confusione.
Sto utilizzando un AlertDialog
per visualizzare una finestra di dialogo con voci di elenco per diverse azioni. Tuttavia, sto ottenendo il seguente errore:
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)
Di seguito si riporta il relativo codice che sto usando:
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);
Così come l'XML che sto usando per la matrice:
<string-array name="quickActions">
<item>Add to Favourites</item>
<item>More information</item>
</string-array>
Non sono sicuro se è importante, ma sto importando lo AlertDialog
da android.support.v7.app.AlertDialog
(dalla libreria di supporto v7).
Come posso risolvere questo problema?
Change 'getBaseContext()' in 'AlertDialog.Builder' di un'istanza per l'istanza di attività corrente. Ad esempio, 'nuovo AlertDialog.Builder (ThisActivity.this)'. –
@MikeM. Questo ha funzionato! Potresti postare questo come una risposta e * spiegare perché ha risolto il problema * - grazie. –