2016-03-28 3 views
0

У меня есть файл XML с именем list_item.xml, который содержит следующий код:Доступа к пунктам в Listview в Android

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:layout_weight="2" 
     android:orientation="horizontal"> 


     <ImageView 
      android:layout_width="40dp" 
      android:layout_height="50dp" 
      android:id="@+id/telephone" 
      android:src="@drawable/telephone"/> 

     <ImageView 
      android:layout_width="40dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="5dp" 
      android:id="@+id/favorie" 
      android:src="@drawable/heart"/> 

     <ImageView 
      android:layout_width="40dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="10dp" 
      android:id="@+id/consulter" 
      android:src="@drawable/consulter"/> 

</LinearLayout> 

В Java коде есть активность:

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.resultat_recherche); 

код XML-файла (resultat_recherche.xml):

<ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

Я заполнил этот список с адаптером:

ListAdapter adapter = new SimpleAdapter(
      Resultat_recherche.this, contactList, 
    R.layout.list_item, new String[] { TAG_NAME}, new int[] { R.id.name}); 

setListAdapter(adapter); 

Теперь я хочу, чтобы восстановить элементы из list_item (ImageView) для управления кнопкой мыши и начать намерение.

я хочу для Exemple, когда я нажимаю на ImageView (телефон) я сделаю что-то

как я могу сделать, что в этой деятельности? Спасибо

+0

Проверьте [setOnClickListener] (http://stackoverflow.com/questions/8615417/how-can-i-set-onclicklistener-on-arrayadapter), и для вашего случая, [SimpleAdapter setOnClickListener] (http: // stackoverflow .com/вопросы/12661705/компл-onclicklistener-в-списке ракурса-с-изображения-и-текст-используя простые-адаптер). Надеюсь, это помогло! – xosuma

ответ

0

первый в своем list_item.xml добавить идентификатор к каждому ImageView и позволяет допускают Img1, Img2, img3 в порядке EXTENS SimpleAdapter и переопределить GetView следующим

class CusAdapter extends android.widget.SimpleAdapter { 

public CusAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) { 
    super(context, data, resource, from, to); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = super.getView(position,convertView,parent); 
    ImageView img1 = (ImageView)view.findViewById(R.id.img); 
    img1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     //do some thing 
     } 
    }); 
    ImageView img2 = (ImageView)view.findViewById(R.id.img); 
    img2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //do some thing 
     } 
    }); 
    ImageView img3 = (ImageView)view.findViewById(R.id.img); 
    img3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //do some thing 
     } 
    }); 
    return view; 
} 

}

затем использовать CusAdapter

ListAdapter adapter = new CusAdapter(
     Resultat_recherche.this, contactList, 
R.layout.list_item, new String[] { TAG_NAME}, new int[] { R.id.name}); 

setListAdapter(adapter); 
+0

Спасибо @Sam :) –

0

Я думаю, что вы ищете OnItemClickListener ListView.

Реализовать это что-то вроде этого

listviewobject.setOnItemClickListener(new OnItemClickListener() 
    { 
    @Override 
    public void onItemClick(AdapterView<?> adapter, View v, int position, 
     long arg3) 
    { 
     String value = (String)adapter.getItemAtPosition(position); 
     // assuming string and if you want to get the value on click of list item 
     // do what you intend to do on click of listview row 
    } 
}); 
Смежные вопросы