setOnItemClickListener ne répond pas pour Coutume ListView
J'ai écrit un Adaptateur personnalisé pour une listview ,mais quand j'ai essayé de mettre en œuvre événement click pour élément de la liste ,j'ai trouvé que ce n'était pas de répondre ,je serai heureux si quelqu'un me suggérer une solution.
public class TourList extends ListActivity {
....
setContentView(R.layout.tourlist);
.....
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
//i couldn't reach here
Log.v(TAG,"did u get me");
}
});
adap = new MyAdapter(TourList.this,mylist);
getListView().setAdapter(adap);
et ma coutume adaptateur est
private class MyAdapter extends BaseAdapter {
ArrayList<HashMap<String,String>> elements;
Context ctx;
public MyAdapter(Context context, ArrayList<HashMap<String,String>> mylist) {
this.elements=mylist;
this.ctx=context;
}
public boolean isEnabled(int position){
return true;
}
@Override
public int getCount() {
return elements.size();
}
@Override
public Object getItem(int position) {
return elements.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (convertView == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.rowfor_tourlist, null);
}
TextView in = (TextView)v.findViewById(R.id.intro);
TextView du = (TextView)v.findViewById(R.id.duration);
TextView pf = (TextView)v.findViewById(R.id.price);
TextView pn = (TextView)v.findViewById(R.id.product);
WebView wv=(WebView)v.findViewById(R.id.photo);
in.setText(Html.fromHtml(mylist.get(position).get("Intro")));
du.setText(mylist.get(position).get("Duration"));
pf.setText(mylist.get(position).get("Price"));
pn.setText(mylist.get(position).get("Product"));
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(mylist.get(position).get("ImageURL"));
return v;
}
}//class
et mon tourlist.xml fichier ressemble à
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
....
>
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/white"
android:cacheColorHint="#00000000"
android:layout_weight="1"
/>
</...>
OriginalL'auteur ganesh | 2010-04-29
Vous devez vous connecter pour publier un commentaire.
Voir si cette discussion aide...
OriginalL'auteur Samuh
La question est très simple.
Vous ne pouvez pas appeler setOnItemClickListener avant setAdapter appel, car ListView s'appuie sur ses enfants et ses enfants sont inconnus jusqu'à ce que vous la valeur de la carte.
Donc simplement faire comme ceci:
De cette façon, vous aurez votre événement et en cours d'exécution !
Désolé, mais je n'ai pas le temps de rentrer en détail dans le code source Android, si je vais je vais poster à nouveau.
Bye les gars,
Alex
Cela résout mon problème, je vous remercie.
En regardant le natif de code source: grepcode.com/file/repository.grepcode.com/java/ext/... , vous pouvez définir l'écouteur de clics avant de la carte
OriginalL'auteur Alex