Подтвердить что ты не робот

ViewRootImpl: ViewPostImeInputStage processPointer 0 на OnItemClick из списка в android

У меня есть cart_layout:

<?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>

И код java для него в 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);
        }
    });
}

Я просто хочу сделать событие OnItemClick, но каждый раз, когда я нажимаю элемент, даже если listview.setOnItemClickListener есть или нет, Logcat показывает

ViewRootImpl: ViewPostImeInputStage processPointer 0

ViewRootImpl: ViewPostImeInputStage processPointer 1

и ничего не происходит.

Я также вижу странный журнал вроде этого, когда-то он сказал "true", когда-то он сказал "false":

ActivityThread: updateVisibility: ActivityRecord {3308191 [email protected] {com.iwant.namhhames.newiwant/com.iwant.namhhames.newiwant.Listing_items}} показать: false

Я не знаю, связано ли это с проблемой, и я понятия не имею, когда возникает проблема, может быть, после того, как я что-то испортил.

И Logcat показан только для реального устройства. С AVD ничего не отображается.

Благодарим вас за ценное время.

4b9b3361

Ответ 1

этот запуск без проблем, поэтому, возможно, ваш адаптер

   @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/ПУНКТ НАБЛЮДЕНИЯ: КЛИМАТИЧЕСКОЕ ПОЛОЖЕНИЕ ДЕТАЛЯ: 2 11-16 14: 55: 34.233 1915-1915/ca.dti.grounded.app E/ITEM CLICK: КЛИМАТНОЕ ПОЛОЖЕНИЕ ДЕТАЛЯ: 0 11-16 14: 55: 35.616 1915-1915/ca.dti.grounded.app E/ПУНКТ НАБЛЮДЕНИЯ: КЛИМАТИЧЕСКОЕ ПОЛОЖЕНИЕ ДЕТАЛЯ: 1 11-16 14: 55: 36.061 1915-1915/ca.dti.grounded.app E/ПУНКТ НАБЛЮДЕНИЯ: КЛИМАТИЧЕСКОЕ ПОЛОЖЕНИЕ ДЕТАЛЯ: 2

Ответ 2

Вы не указываете Custom_Cart_Adapter.java. Попробуйте добавить android: focusable = "false" в свой single_item.xml, который вы используете внутри Custom_Cart_Adapter.java Это может помочь.

Ответ 3

Нельзя использовать onItemClickListener из списка, так как это может вызвать множество проблем. В этом случае я бы предложил использовать пользовательский клик-прослушиватель в представлении адаптера и передать индекс через этот прослушиватель кликов, я имею в виду, попытаюсь реализовать свой собственный onItemClickListener.

Как вы можете заметить, в recyclerView onItemClickListener не появляется, и правильный подход заключается в реализации собственного onItemClickListener.