Listview

nadya17 Messages postés 3 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014 - Modifié par cs_Julien39 le 24/03/2015 à 11:43
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 1 août 2014 à 18:18
Bonjour,
j'ai une appliction android, mon but ici est de passer en cliquant sur une item d'une listeview à une autre vue, je ne trouve pa comment resoudre l'erreur ici "l'erreur se localise dans la ligne ListView listview = (ListView) findViewById(R.id.listview); au niveau de "findViewById"
,merci.
LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.activity_main2, null);
convertView. findViewById(R.id.listView);

ListView listview = (ListView) findViewById(R.id.listview);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
if (position == 0)
 {
 Intent t = new Intent(context,Main2Activity.class);

context.startActivity(t);

 }
}
});
}

}

3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
1 août 2014 à 13:57
Hello,

Deja, l'ajout de balise code aide a la lecture, cf. ici

Ensuite, le
findViewById()
te retourne une view. Ici, tu ne la recuperes pas. J'imagine que tu as bien une ListView qui s'appelle listView dans ton layout activity_main2
0
nadya17 Messages postés 3 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 1 août 2014
1 août 2014 à 17:54
merci BunoCS,
Pouvez vous m'expliqué un peu, j'ai pas bien saisi votre réponse.
Merci pour votre remq, voici tous le code, et la partie designé ce sont presque les derniers lignes
public class MainActivity extends Activity {

	ListView list;
	String [] memeTitles;
	String [] memeDescriptions;
	int [] images={R.drawable.ima1,R.drawable.ima2,R.drawable.ima3,R.drawable.ima4,R.drawable.ima5,R.drawable.ima6,R.drawable.ima7,R.drawable.ima8,R.drawable.ima9};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	
	Resources res= getResources();
	memeTitles= res.getStringArray(R.array.titles);
	memeDescriptions= res.getStringArray(R.array.descriptions);
    Test2 adapter= new Test2(this, memeTitles, images, memeDescriptions);
    list.setAdapter(adapter);

}}
	
	class Test2 extends ArrayAdapter<String>
	{
		Context context;
		int[] images;
		String[] titleArray;
		String[] descriptionArray;

		
Test2(Context c,String[] titles,int[] imgs,String[] desc)
		{
super(c,R.layout.single_row,R.id.textView1,titles);
this.context=c;
this.images=imgs;
this.titleArray=titles;
this.descriptionArray=desc;
	}
@Override

public View getView(int position, View convertView, ViewGroup parent){
	View row= convertView;
	if(row==null)
	{
	LayoutInflater inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	
	row=inflater.inflate(R.layout.single_row,parent, false);
	}
	ImageView myImage= (ImageView) row.findViewById(R.id.imageView);
	TextView myTitle= (TextView) row.findViewById(R.id.textView1);
	TextView myDescription= (TextView) row.findViewById(R.id.textView2);
	
myImage.setImageResource(images[position]);
myTitle.setText(titleArray[position]);
myDescription.setText(descriptionArray[position]);
return row;
LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.activity_main2, null);
ListView listview=(ListView) findViewById(R.id.listView);
listview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
if (position == 0)
	{
	Intent t = new Intent(context,Main2Activity.class);

context.startActivity(t);
	}
}
});
}}

0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
1 août 2014 à 18:18
Ligne 16: ta liste n'est pas initialisée!
Généralement, on utilise findViewById() pour récupérer les éléments graphiques définis dans le layout xml.
De plus, sauf erreur de ma part, tes lignes à partir de la 54 ne seront jamais exécutées à cause du return juste avant.

Voici un tuto à lire: http://www.vogella.com/tutorials/AndroidListView/article.html
0
Rejoignez-nous