2013-09-21 4 views
1

У меня есть listView и SimpleAdapter, которые устанавливают мой listView. Но setOnItemClickListener событие не поднято.setOnItemClickListener событие не работает

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    mContext = this; 
    setContentView(R.layout.add_item_from_subcateg); 
    subcategName = getIntent().getExtras().getString("subcategName"); 
    mySQLWorker = new MySQLWorker(this); 
    mySQLWorker.open(); 
    list_view_products = (ListView) findViewById(android.R.id.list); 
    finishLoading(null); 
} 

public void finishLoading(ArrayList<HashMap<String, Object>> result) 
{ 

    HashMap<String, Object> hashmap; 
    List<ProductInfo> products = mySQLWorker.GetProductsByCategory(subcategName); 


    for (ProductInfo product : products) 
    { 
    hashmap = new HashMap<String, Object>(); 
    hashmap.put("ItemID", product.getID()); 
    hashmap.put("image_product", product.getImagePath()); 
    hashmap.put("product_name", product.getName()); 
    hashmap.put("lbl_protein_count", product.getProtein()); 
    hashmap.put("lbl_fat_count", product.getFat()); 
    hashmap.put("lbl_carbohydrates_count", product.getCarbohydrates()); 
    list_products.add(hashmap); 
    } 


    adapterProductsList = new SimpleAdapter(mContext, list_products, 
    R.layout.product_template, new String[] { "image_product", 
    "product_name", "lbl_protein_count", 
    "lbl_fat_count", "lbl_carbohydrates_count" }, new int[] { 

    R.id.image_product,R.id.product_name, R.id.lbl_protein_count, 
    R.id.lbl_fat_count,R.id.lbl_carbohydrates_count }); 
     list_view_products.setAdapter(adapterProductsList); 
     adapterProductsList.notifyDataSetChanged();   
     progress_dialog.dismiss(); 

     list_view_products.setOnItemClickListener(new 
    AdapterView.OnItemClickListener() 
     { 
     @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int position, long 
    arg3) 
      { 
       Toast.makeText(mContext, "312", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

и XML:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@android:color/background_dark" > 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:focusable="false" 
    android:focusableInTouchMode="false"> 
</ListView> 

</RelativeLayout> 

Спасибо за заранее!

UPD:

ListView расположение:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/lv_item" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:layout_margin="10dp" 
android:background="@drawable/lv_item_bg" 
android:clickable="true"> 

<ImageView 
    android:id="@+id/image_product" 
    android:layout_width="120dp" 
    android:layout_height="80dp" 
    android:layout_margin="4dp" 
    android:contentDescription="@drawable/ic_launcher" /> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/product_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="18sp" 
     android:text="@string/title_default_value" 
     android:textColor="@color/gold_color" /> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="10dp" > 

     <TextView 
      android:id="@+id/lbl_protein" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:text="@string/protein_label" 
      android:textColor="@android:color/holo_blue_bright" /> 

     <TextView 
      android:id="@+id/lbl_protein_count" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:layout_toRightOf="@+id/lbl_protein" 
      android:text="@string/gramm_default" 
      android:textColor="@android:color/holo_blue_bright" 
      android:paddingLeft="5dp" /> 

     <TextView 
      android:id="@+id/lbl_fat" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:layout_below="@+id/lbl_protein" 
      android:text="@string/fat_label" 
      android:textColor="@android:color/holo_red_dark" /> 

     <TextView 
      android:id="@+id/lbl_fat_count" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:layout_toRightOf="@+id/lbl_fat" 
      android:layout_below="@+id/lbl_protein_count"    
      android:text="@string/gramm_default" 
      android:textColor="@android:color/holo_red_dark" 
      android:paddingLeft="5dp" /> 

     <TextView 
      android:id="@+id/lbl_carbohydrates" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:layout_below="@+id/lbl_fat" 
      android:text="@string/carbohydrates_label" 
      android:textColor="@android:color/holo_green_dark" /> 

     <TextView 
      android:id="@+id/lbl_carbohydrates_count" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="13sp" 
      android:layout_toRightOf="@+id/lbl_carbohydrates" 
      android:layout_below="@+id/lbl_fat_count" 
      android:text="@string/gramm_default" 
      android:textColor="@android:color/holo_green_dark" 
      android:paddingLeft="5dp" /> 

     <ImageButton 
      android:id="@+id/btn_more" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:src="@drawable/spinner_ab_holo_light"/> 
    </RelativeLayout> 

</LinearLayout> 
</LinearLayout> 
+0

вставить вас ListView в файл макета –

ответ

7

Я думаю, что ваш ImageButton крадет прочь событие onItemClickLister. Добавьте этот атрибут в свой макет

android:descendantFocusability="blocksDescendants" 

А также удалить андроид: clickable = "true" вещь. Так оно и должно быть, как это

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/lv_item" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="10dp" 
android:descendantFocusability="blocksDescendants" 
android:orientation="horizontal" > 

<ImageView 
    android:id="@+id/image_product" 
    android:layout_width="120dp" 
    android:layout_height="80dp" 
    android:layout_margin="4dp" /> 
...... 

Благодаря

+0

Android: фокусируемый = «ложь» в ImageButton does'n помощь .. – Andrew

+0

я удалил ImageButton, но событие не работает .. – Andrew

+0

Я обновил свой ответ. Пожалуйста, проверьте –

Смежные вопросы