Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Se ha intentado finalizar un evento de entrada pero el receptor de eventos de entrada ya se ha eliminado

Tengo un adaptador de encargo para mi listview. El adaptador contiene una vista de texto y un botón de imagen. He implementado un menú emergente al hacer clic en el botón de imagen. Todo está funcionando bien. Sin embargo, al seleccionar las opciones del menú emergente, logcat mostrar un mensaje de una sola línea "Se ha intentado terminar un evento de entrada pero el receptor de eventos de entrada ya se ha eliminado" y no ocurre nada.

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; } } 

La interfaz de onclicklistener

 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(); } } 

Lo que entendí del mensaje es que algo está comiendo el evento antes de que onMenuItemClick () se ejecute. Estoy ejecutando mi aplicación en nexus 5 android 5.0.1.

Aquí encuentro una solución para problemas similares. Pero no estoy consiguiendo cómo utilizar este acercamiento a mi problema.

Intenté usar el menú contextual en lugar del menú emergente, pero aún así tuve el mismo mensaje "Intenté terminar un evento de entrada pero el receptor de eventos de entrada ya se ha eliminado" después de hacer clic en el elemento del menú contextual.

Por favor, ayúdame…!!

One Solution collect form web for “Se ha intentado finalizar un evento de entrada pero el receptor de eventos de entrada ya se ha eliminado”

He golpeado este problema desde otro ángulo; Tratando de lanzar un servicio desde un menú. De forma predeterminada, el mensaje de depuración no es demasiado relevante. Mi solución fue eliminar los filtros en logcat y luego recibí otro mensaje que no podía iniciar el servicio en primer lugar (se me olvidó ponerlo en mi archivo de manifiesto).

En su caso, puede que tenga que envolver la presentación de brindis en una clase:

 public class DisplayToast implements Runnable { private final Context mContext; private final String mText; public DisplayToast(Context mContext, String text) { this.mContext = mContext; mText = text; } public void run() { Toast.makeText(mContext, mText, Toast.LENGTH_SHORT).show(); } } 

Y llame a través de un objeto Handler :

 mHandler.post(new DisplayToast(this, "Epic message!")); 

O mejor aún, utilizando el método Handler.postDelayed() .

HTH,

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.