2011-11-14 24 views
6

Basit bir ArrayAdapter sahibim. Listemin her satır tıklaması için yeni bir Etkinlik açılacak şekilde bir dinleyici kurmak istiyorum. Bunu nasıl yaparım? Benim ArrayAdapter kodu - kullanarak adaptör ayarladıktan sonraAndroid - bir ArrayAdapter öğesine bir madde tıklama yöntemi nasıl eklenir

public class CountryListAdapter extends ArrayAdapter<String> { 
private final Activity context; 
private final ArrayList<String> names; 

public CountryListAdapter(Activity context, ArrayList<String> names) { 
    super(context, R.layout.rowlayout, names); 
    this.context = context; 
    this.names = names; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView = inflater.inflate(R.layout.rowlayout, null, true); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    textView.setText(names.get(position)); 
    return rowView; 
} 

cevap

8

OnItemClickListener uygulanarak şu kodu kullanabilirsiniz:

ArrayAdapter<Object> ad = new ArrayAdapter<Object>(this, 
       android.R.layout.simple_list_item_checked, items); 
     setListAdapter(ad); 
     ListView list = getListView(); 
     list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     //list.setItemChecked(0, true); 
     list.setOnItemClickListener(this); 

DÜZENLEME: Eğer ListActivity uzatmak yoksa Aksi takdirde, sizin düzeninde bir liste görünümü var ve ListView list = findViewById(R.id.listView) gibi bir şeyle ListView list = getListView() değiştirin. Basitçe AdapterView.OnItemClickListener uygulamak

list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      } 
     }); 
+0

OnClick mantığını ArrayAdapter (veya başka bir bağdaştırıcı) ile bağlama yolu var mı? Bir bağdaştırıcım var, ancak bununla dolu çok sayıda ListViews var ve onu Bağdaştırıcının kendisine bağlamak daha güzel olurdu. –

-2

: Sonra

mListView.setAdapter(myCountryListAdapter); 

yapabilirsiniz kurulum liste görünümü için bir tıklama dinleyici: Bir ListActivity kullandığınız varsayarsak

mListView.setOnParentClickListener(new OnClickListener() {   
    public void onClick(View view,) { 
      ///do what you want the click to do 
    }  
    }); 
4

ile list.setOnItemClickListener(this) değiştirin.

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) { 
    Intent i = new Intent(this, ProductActivity.class); 
    i.putExtra("item_id", manager.getItemIdAtIndex(pos)); 
    startActivity(i); 
} 

Sonra sadece adaptörü onItemClickListener olarak bu yöntem ile sınıfını ayarlayın.

İlgili konular