studio setonitemclicklistener otro new llamar item hacer getitematposition evento clic adapterview activity java android listview onitemclicklistener

java - otro - setonitemclicklistener listview android



ViewRootImpl: ViewPostImeInputStage processPointer 0 en OnItemClick de Listview en android (4)

Hiciste bien pero para arrayadapter tu oyente onItemClick() debería verse así.

ListView listview = (ListView)findViewById(R.id.listest); listview .setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View v, int position, long arg3) { Log.e("ITEM CLICK","CLICKED ITEM POSITION: "+position); } });

¡¡Espero que te ayude!!

Tengo una cart_layout como esta:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="9" android:id="@+id/cart_listview" android:layout_gravity="center_horizontal" android:background="@color/whiteBg"/> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:layout_gravity="bottom" android:padding="5dp" android:gravity="bottom" android:background="@color/whiteBg"> <!-- this layout contains a button and a textview which I don''t think is the problem --> </LinearLayout> </LinearLayout>

Y el código java para ello en Cart.java :

protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cart_layout); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); dbhandler = new DatabaseHandler(this); product_all = dbhandler.getProduct(); total = (TextView)findViewById(R.id.cart_total_textview); listview = (ListView)findViewById(R.id.cart_listview); cart_adapter = new Custom_Cart_Adapter(this,product_all); listview.setAdapter(cart_adapter); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.v("ITEM CLICK","CLICKED ITEM POSITION: "+position); Intent intent = new Intent(Cart.this, Item_edit_details.class); intent.putExtra("the_product", product_all.get(position)); startActivity(intent); } }); }

Solo quiero hacer un evento OnItemClick pero cada vez que toco el elemento, incluso cuando listview.setOnItemClickListener está allí o no, Logcat muestra

ViewRootImpl: ViewPostImeInputStage processPointer 0

ViewRootImpl: ViewPostImeInputStage processPointer 1

y no pasa nada

También veo un registro extraño como este, a veces decía "cierto" alguna vez decía "falso":

ActivityThread: updateVisibility: ActivityRecord {3308191 token = android.os.BinderProxy@c7ed098 {com.iwant.namhhgames.newiwant / com.iwant.namhhgames.newiwant.Listing_items}} show: false

No sé si se relacionó con el problema, y ​​no tengo idea de cuándo ocurre el problema, tal vez después de haberlo estropeado.

Y el Logcat solo se muestra para dispositivos reales. Con AVD, no se muestra nada.

Gracias por tu valioso tiempo.


No aparece Custom_Cart_Adapter.java. Intenta agregar android: focusable = "false" en tu single_item.xml que usas dentro de Custom_Cart_Adapter.java. Puede ser útil.


No se debe utilizar el onItemClickListener de listview ya que puede causar muchos problemas como este. Para este caso, sugeriría el uso de un oyente de clic personalizado en la vista del adaptador y pasar el índice a través de este oyente de clic, quiero decir, intentar implementar su propio onItemClickListener.

Como puede observar, en recyclerView no aparece el onItemClickListener y el enfoque adecuado es implementar su propio onItemClickListener.


esta ejecución sin problema, así que tal vez su adaptador

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.testlist); ListView listview = (ListView)findViewById(R.id.listest); ArrayList<String> cart_adapter = new ArrayList<String>(); cart_adapter.add("Me"); cart_adapter.add("Him"); cart_adapter.add("You"); listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cart_adapter)); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.e("ITEM CLICK","CLICKED ITEM POSITION: "+position); } }); }

11-16 14: 55: 31.735 1915-1915 / ca.dti.grounded.app E / ITEM CLICK: CLICED POSICIÓN DEL ARTÍCULO: 2 11-16 14: 55: 34.233 1915-1915 / ca.dti.grounded.app E / ARTÍCULO HAGA CLIC EN: CLICED POSICIÓN DEL ARTÍCULO: 0 11-16 14: 55: 35.616 1915-1915 / ca.dti.grounded.app E / ARTÍCULO HAGA CLIC EN: CLIC EN EL ARTÍCULO POSICIÓN: 1 11-16 14: 55: 36.061 1915-1915 / ca .dti.grounded.app E / ITEM CLICK: CLICED POSICIÓN DEL ARTÍCULO: 2