سؤال

حسنا أنا أعلم أن هذا قد يبدو مثل أي قضايا أخرى تتعلق ليستفيو و ليستاكتيفيتي القضايا ولكن هذا ليس ، وانا ذاهب للذهاب مجنون كما فعلت في الأسبوع الماضي ذهب على وعلى البحث عن وظيفة للعثور على أي حل لهذا قد يساعدني.حاولت بالفعل ليستفيو البند الخلفية عبر محدد مخصص و جيتفيو مقابل.بيندفيو في كورسورادابتر مخصص? كل مواقع المدونات الأخرى الممكنة...

حسنا المشكلة ، لن يسمح ليستفيو لواحد 1 باختيار / أحداث إطلاق النار و 2.لن يغير تمييز الصف عند النقر فوق عنصر.لدي معيار TestActivity تمديد ListActivity ولقد نفذت العرف TestCursorAdapter extends SimpleCursorAdapter

الآن في الجانب شمل من الأشياء لدي على test_list_view.xml والثانية row_view.xml الآن تابعت أعلاه يذكر الإجابات وتنفيذ selector كما row_selector.xml.لكن المشكلة تتعلق بأحد الصفوف لا تقبل أي أحداث نقرة أو تركيز.أنا نفذت نخب الأساسية للإشارة إلى ما إذا كان هناك أي شيء يحدث

@Override
protected void onListItemClick(ListView l, View v , int postion, long idontnow){
    Toast.makeText(getApplicationContext(), "Hello World",  Toast.LENGTH_SHORT ).show();
}

جزء من قائمة الاختبار_عرض.شمل

<ListView android:id="@android:id/list" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="true" 
    android:cacheColorHint="#00000000"
    android:focusable="true" 
    android:listSelector="@color/row_selector" 
    android:background="@color/Transparent"/>

جزء من محدد.شمل (نسخ أساسا ولصق من أحد الروابط المذكورة أعلاه)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" 
        android:drawable="@color/Transparent" />
    <item 
        android:state_focused="true"
        android:state_enabled="false"
        android:state_pressed="true" 
        android:drawable="@color/green" />
    <item 
        android:state_focused="true"
        android:state_enabled="false"      
        android:drawable="@color/green" />
    <item 
        android:state_focused="true"
        android:state_pressed="true" 
        android:drawable="@color/blue" />
    <item 
        android:state_focused="false"
        android:state_pressed="true" 
        android:drawable="@color/blue" />
    <item 
        android:state_focused="true" 
        android:drawable="@color/green" />
    <item 
        android:state_selected="true" 
        android:drawable="@color/blue" />
    <item 
        android:drawable="@color/Transparent" />
</selector>

تابعت جميع الخيارات التي أنا على علم ولا يزال لا شيء. والفرق الرئيسي الوحيد هو الرجال أنا لا تستخدم getView بدلا من ذلك أنا باستخدام bindView.

أي مساعدة الرجال سيكون محل تقدير كبير.

شكرا مقدما.

سانج

هل كانت مفيدة؟

المحلول

أقترح عليك إزالة android:focusable="true" من ال ListView.

بالإضافة إلى ذلك ، يمكنك استخدام selector كما لون الخلفية من العناصر التي يتم عرضها في ListView.تأكد أيضا من أن هذه العناصر لا تتصل onClick أو onTouch أو شيء من هذا القبيل ، والسماح لل ListView تعامل مع أحداث النقر.

آمل أن يساعد هذا

تحرير:

لمشكلتك مع اختيار استخدام البند

lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            yourMethod();
        }
    });

نصائح أخرى

بعد اقتراح روكودراوغ وما بعده ليستفيو أونيتمكليكليستينر لا يستجيب?

حقيقة أخرى كما ذكر الاستخدام bindView الطريقة ، اعتدت

view.setClickable(true);
view.setFocusable(true); 

هذا البند انقر نوع من الأعمال ، إلا إذا قمت بالنقر فوق على المنطقة المميزة باللون الأصفر و ImageView.يجب أن أكون قادرا على معرفة ذلك بفضل,

enter image description here

تحرير

أوه * ٪ # - حلها ، اللازمة لتعيين ريلاتيفلايوتس Add State from Children = true;

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top