Android OnItemClickListener dans la vue liste, pas de travail
Je me suis fait un onglet activité qui fonctionne très bien lorsque je clique sur l'onglet spécifique-je étendre la liste des activités et je suis également l'affichage de la liste mais je ne suis pas en mesure de faire des éléments dans la liste cliquable. code:
package com.infra.android.views;
import java.util.ArrayList;
import java.util.HashMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class TopNewsActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listplaceholder);
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
String xml = XMLfunctions.getTopNewsXML();
Document doc = XMLfunctions.XMLfromString(xml);
int numResults = XMLfunctions.numResults(doc);
if((numResults <= 0)){
Toast.makeText(TopNewsActivity.this, "No Result Found", Toast.LENGTH_LONG).show();
finish();
}
NodeList nodes = doc.getElementsByTagName("result");
for (int i = 0; i < nodes.getLength(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element)nodes.item(i);
map.put("id", XMLfunctions.getValue(e, "id"));
map.put("title", XMLfunctions.getValue(e, "title"));
mylist.add(map);
}
ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main, new String[] { "title"}, new int[] { R.id.item_title});
setListAdapter(adapter);
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
Toast.makeText(TopNewsActivity.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_LONG).show();
}
});
}
}
quand je clique sur l'élément qu'il devrait sans doute donner l'id de l'élément cliqué, mais il ne fonctionne pas.
- ce contenu dans votre listview? comme tout imageview ou une case à cocher
- J'ai un texte normal qui je veux rendre cliquable
- veuillez définir "pas de travail". Est-il jeter un
Exception
? Quel est votre LogCat dire? En mode débogage, quelles sont les valeurs de lao: HashMap
tenir? Sont-ils corrects?
Vous devez vous connecter pour publier un commentaire.
Pour ListView,
et Dans le fichier XML, assurez-vous que Textview à l'intérieur de l'élément de liste jeu de focusable faux
u peut utiliser
Essayez ceci:
Vous avez manqué la
@Override
.Il y a des problèmes dans android avec la montre des boîtes de dialogue et des toasts dans sap, de sorte que votre code fonctionne bien, mais pour faire le pain grillé, essayez ceci:
Le problème est que dans votre carte de gonfler la principale disposition pour chaque élément de la liste. Qui doit être changé pour un itemrenderer de la mise en page.
Puisque vous avez déjà la solution de cette question ici, vous devez marquer résolu soit par l'acceptation de l'une de ces réponses, ou en répondant vous-même avec le lien ci-dessus.
J'ai lutté avec pendant un certain temps avant que je comprenne que
areAllItemsEnabled
etisEnabled
dans mon costumListAdapter
où la valeur false.