tanzim edilmiş bitirmek çalışıldı. Adaptör bir metin görünümü ve bir görüntü düğmesi içerir. Resim düğmesine tıkladığınızda bir açılır menü başlattım. Her şey iyi çalışıyor. Ancak, açılır menüden seçenekleri belirlerken, "Bir giriş olayını bitirmek için girişimde bulunuldu, ancak giriş alıcısı zaten atıldı" mesaj kutusu görüntüleniyor ve hiçbir şey olmuyor. arayüzünde OnClickListenerbir giriş olay ama giriş olay alıcısı zaten benim liste görünümü için özel bir adaptör var
public class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int resourceId) {
super(context, resourceId);
}
public MyAdapter(Context context, int resourceId, List<String> string) {
super(context, resourceId, string);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
v = inflater.inflate(R.layout.adapter_layout, null);
}
String str = getItem(position);
if(str != null) {
TextView textView = (TextView)v.findViewById(R.id.editText1);
textView.setText(str);
ImageButton button = (ImageButton)v.findViewById(R.id.imageButton1);
button.setOnClickListener(new Custom_Adapter_Button_Click_Listener(getItemId(position), getContext()));
}
return v;
}
}
Ben mesajdan anlaşılan Ne
public class Custom_Adapter_Button_Click_Listener implements OnClickListener, OnMenuItemClickListener {
long position;
Context context;
public Custom_Adapter_Button_Click_Listener(long id, Context appcontext) {
position = id;
context = appcontext;
}
@Override
public boolean onMenuItemClick(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
int index = info.position;
Log.d("ItemClicked", "selected index : " + index);
switch(item.getItemId()) {
case R.id.option :
Toast.makeText(context, "Selected index : " + index, Toast.LENGTH_SHORT).show();
return true;
default :
Toast.makeText(context, "Default", Toast.LENGTH_SHORT).show();
return false;
}
}
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(context, v);
MenuInflater popupInflater = popup.getMenuInflater();
popupInflater.inflate(R.menu.contextmenu, popup.getMenu());
popup.show();
}
}
bazı şey yürütmek alır onMenuItemClick önce olay() yeme olmasıdır olduğunu. Uygulamamı nexus 5 android 5.0.1 sürümünde çalıştırıyorum.
ben here gelen problemin benzer tür bir çözüm bulmak. Ama bu yaklaşımı benim problemime nasıl kullanacağımı anlamıyorum.
yerine açılan menü bağlam menüsünü kullanarak çalıştı, ancak yine de ben "zaten elden çıkarılan bir giriş olayını ama giriş olay alıcıyı bitirmek için çalışıldı" Aynı mesajı vardı bağlam menü öğesi tıkladıktan sonra.Lütfen bana yardım ... !!
ben aşağıdaki senaryoda bu hata mesajını vardır: Aktivite Bir Dialog oluşturur. Dialog bir KeyListener atandı. Back Düğmesine basılır ve Activity + Dialog kapalıdır. Görünüşe göre, "giriş olayı" tamamlanmadan önce Diyalog kapalıdır. – Pawel