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
15277
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2022
- 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
15277
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2022
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
15277
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2022
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