2014-05-23 3 views
0

je l'ai déjà essayé setFocusable, setItemsCanFocus, android:descendantFocusability="blocksDescendants", android:focusable="false",
mais sa ne fonctionne pas.Android ListView setOnItemClickListener pas wroking

ListView dans la classe [dans cette classe je crée objet ListView et imprimer un toast à clic, mais sa ne fonctionne pas]

ListView listviewobj; 
listviewobj = (ListView) findViewById(R.id.location1_list); 
Location_adapter adapter = new Location_adapter(Location1.this); 
     listviewobj.setAdapter(adapter); 
     Toast.makeText(Location1.this, "clicked", Toast.LENGTH_SHORT).show(); 
     listviewobj.setOnItemClickListener(new ListView.OnItemClickListener(){ 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 
       Toast.makeText(Location1.this, "clicked", Toast.LENGTH_SHORT).show(); 
      } 

     }); 

Adaptateur [son adaptateur listview qui a fixé des valeurs à l'article]

public class Location_adapter extends BaseAdapter { 

Context context; 

public Location_adapter(Context context) { 
    this.context = context; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 2; 
} 

@Override 
public Object getItem(int arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

class Holder { 
    LinearLayout ll; 
    ImageView img; 
    TextView name, adress, rating, icon; 
} 

@Override 
public View getView(int position, View viewcontainer, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View view = viewcontainer; 
    Holder holder = null; 
    if (view == null) { 
     LayoutInflater inflater = ((Activity) context) 
       .getLayoutInflater(); 
     view = inflater.inflate(R.layout.locationlistitem, parent, 
       false); 
     holder = new Holder(); 
     holder.ll = (LinearLayout) view 
       .findViewById(R.id.location_list_item_star); 
     holder.img = (ImageView) view 
       .findViewById(R.id.location_list_item_img); 
     holder.name = (TextView) view 
       .findViewById(R.id.location_list_item_shop); 
     holder.adress = (TextView) view 
       .findViewById(R.id.location_list_item_address); 
     holder.rating = (TextView) view 
       .findViewById(R.id.location_list_item_rating); 
     holder.icon = (TextView) view 
       .findViewById(R.id.location_list_item_fvt_icon); 
     view.setTag(holder); 
    } else { 
     holder = (Holder) view.getTag(); 
    } 
    holder.img.setImageResource(R.drawable.star2); 
    holder.name.setText("Norve coffee shop"); 
    holder.adress.setText("Lahore"); 
    holder.rating.setText("0.1 M"); 
    holder.icon.setBackgroundResource(R.drawable.like); 
    return view; 
} 

}

ListView dans la mise en page [listview créée en configuration linéaire]

<LinearLayout 
      android:id="@+id/location1_listlayout" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="8.35" 
      android:visibility="gone" > 

      <ListView 
       android:id="@+id/location1_list" 
       android:layout_width="match_parent" 
       android:divider="#DEDEDE" 
       android:dividerHeight="1dp" 
       android:layout_height="match_parent" > 
      </ListView> 
     </LinearLayout> 
+0

essayez ceci votre disposition principale 'locationlistitem'' android: descendantFocusability = "blocksDescendants" ' –

+0

@SimplePlan ne fonctionne toujours pas –

+0

Votre publicité Apter obtient ne rien faire, juste sayin: P – zgc7009

Répondre

0

dans ma classe d'adaptateur à l'intérieur GetView comme code suivant et son travail maintenant

public class Location_adapter extends BaseAdapter { 

Context context; 

public Location_adapter(Context context) { 
    this.context = context; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 2; 
} 

@Override 
public Object getItem(int arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

class Holder { 
    LinearLayout ll; 
    ImageView img; 
    TextView name, adress, rating, icon; 
} 

@Override 
public View getView(int position, View viewcontainer, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View view = viewcontainer; 
    Holder holder = null; 
    if (view == null) { 
     LayoutInflater inflater = ((Activity) context) 
       .getLayoutInflater(); 
     view = inflater.inflate(R.layout.locationlistitem, parent, 
       false); 
     holder = new Holder(); 
     holder.ll = (LinearLayout) view 
       .findViewById(R.id.location_list_item_star); 
     holder.img = (ImageView) view 
       .findViewById(R.id.location_list_item_img); 
     holder.name = (TextView) view 
       .findViewById(R.id.location_list_item_shop); 
     holder.adress = (TextView) view 
       .findViewById(R.id.location_list_item_address); 
     holder.rating = (TextView) view 
       .findViewById(R.id.location_list_item_rating); 
     holder.icon = (TextView) view 
       .findViewById(R.id.location_list_item_fvt_icon); 
     view.setTag(holder); 
    } else { 
     holder = (Holder) view.getTag(); 
    } 
    holder.img.setImageResource(R.drawable.star2); 
    holder.name.setText("Norve coffee shop"); 
    holder.adress.setText("Lahore"); 
    holder.rating.setText("0.1 M"); 
    holder.icon.setBackgroundResource(R.drawable.like); 
view.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View arg0) { // TODO Auto-generated 
        Toast.makeText(Location1.this, "clicked", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
    return view; 
} 
0

essayez ceci:

listviewobj.setOnItemClickListener(new OnItemClickListener(){ 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(Location1.this, "clicked", Toast.LENGTH_SHORT).show(); 
     } 

    }); 

me souviens que je viens d'utiliser ce android.widget.AdapterView.OnItemClickListener import '

+0

encore ne fonctionne pas :( –

+0

il suffit d'utiliser 'nouvelle OnItemClickListener() {' et 'android.widget.AdapterView.OnItemClickListener import' – Xcihnegn

+0

ne fonctionne toujours pas. I utilisez-le dans mon adaptateur view.setonclicklistner –

Questions connexes