Bir RecyclerView
var ve onun bağdaştırıcısında, OnLongClickListener
, ben bir karışıklık önlemek için bir OnEntryLongClickListener
çağıran bir şey yarattık.
Farklı eylemler için liste öğelerini içeren bir iletişim kutusu görüntülemek için AlertDialog
kullanıyorum.
<string-array name="quickActions">
<item>Add to Favourites</item>
<item>More information</item>
</string-array>
: Ben dizi için kullanıyorum
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);
yanı sıra XML: Aşağıda
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)
kullanıyorum alakalı kodu: Ancak, aşağıdaki hatayı alıyorum
Önemli olup olmadığından emin değilim, ancak android.support.v7.app.AlertDialog
'dan (v7 Destek Kitaplığı'ndan) AlertDialog
'u içe aktarıyorum.
Bu sorunu nasıl çözebilirim?
değiştirme 'getBaseContext() 'mevcut Aktivite örneğine' AlertDialog.Builder' örnekleme olarak. Örneğin, 'yeni AlertDialog.Builder (ThisActivity.this)'. –
@MikeM. Bu işe yaradı! Bunu bir cevap olarak gönderebilir misiniz? * Sorunu neden çözdüğünü * açıklayınız - teşekkürler. –