J'ai fait listview avec des images et du texte.J'essaie d'ouvrir une nouvelle activité sur chaque élément étant cliqué.Cependant la même activité s'ouvre toujours quel que soit l'article cliqué.Voici le codeMise en œuvre de customviewadpter
MainActivity.java
public class Dslr extends Activity implements OnItemClickListener
{
public static final String[] titles=new String[]{"Nikon D3300","Canon EOS 1200D","C","D"};
public static final String[] Descriptions=new String[]{"The Nikon D3300 is the latest entry-level model to Nikon's series: an affordable and well-balanced choice to introduce you to the world of DSLR.","The Canon EOS 1200D might be a safe replacement of the nearly four-year-old 1100D model, but it holds enough weight to keep the entry-level DSLR market bubbling along.","nnvnv","ggs"};
public static final Integer[] images={ R.drawable.d1,R.drawable.d2,R.drawable.s11,R.drawable.s2};
ListView listView;
List<RowItem> rowItems;
Button back;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dslr);
back=(Button)findViewById(R.id.button3);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent s=new Intent(getApplicationContext(),M.class);
startActivity(s);
}
});
rowItems = new ArrayList<RowItem>();
for (int i = 0; i < titles.length; i++) {
RowItem item = new RowItem(images[i], titles[i], Descriptions[i]);
rowItems.add(item);
}
listView=(ListView)findViewById(R.id.list);
CustomListViewAdapter adapter=new CustomListViewAdapter(this,R.layout.list_item,rowItems);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id)
{ switch(position)
{
case 0: Intent i=new Intent(getApplicationContext(),D.class);
startActivity(i);
case 1:Intent b=new Intent(getApplicationContext(),D_1.class);
startActivity(b);
case 2: Intent z=new Intent(getApplicationContext(),D.class);
startActivity(z);
}
}
}
D.java
public class D extends Activity {
Button buy,back;
ImageView iv;
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_d);
iv=(ImageView)findViewById(R.id.imageView1);
iv.setScaleType(ScaleType.FIT_XY);
t1=(TextView)findViewById(R.id.textView1);
t1.setMovementMethod(new ScrollingMovementMethod());
buy=(Button)findViewById(R.id.button1);
buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Uri uri = Uri.parse("https://www.google.co.in/aclk?sa=L&ai=CoF1Zol9ZVtzADciuoAP57pvIDfDzl6cL0MSdhLsCuI6-3rwDCAQQAigFYOXC5IOkDsgBB6oEJE_QiSIJrNnjAN5b8R-9M8Ju79TsseUlGme7UcNxXdnFBBkwlMAFBaAGJoAH2KTjTpAHA6gHpr4b2AcB4BL88bWn1rDTp6YB&sig=AOD64_3x0dFtyFndnyF_-tFHuIrwp4DQtQ&ctype=5&clui=5&q=&ved=0ahUKEwi1xoHc07LJAhXRH44KHZv3BL0Qww8IJQ&adurl=http://5231.xg4ken.com/trk/v1%3Fprof%3D435%26camp%3D92%26affcode%3Dpg19701%26kct%3Dgoogle%26kchid%3D6215386675%26cid%3D84519575488%26networkType%3Dsearch%26kdv%3Dc%26kpid%3DB00KBI7ANQ%26kmc%3D105201768%26criteriaid%3Dkwd-119383492408%26adgroupid%3D22913451688%26campaignid%3D336119728%26locphy%3D9061721%26adpos%3D1o2%26url%3Dhttp://www.amazon.in/Nikon-D3200-24-2MP-Digital-18-55mm/dp/B00KBI7ANQ%3Ftag%3Dgooginhydr18418%26tag%3Dgooginkenshoo-21%26ascsubtag%3D_kenshoo_clickid_"); // missing 'http://' will cause crashed
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
back=(Button)findViewById(R.id.button2);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent b=new Intent(getApplicationContext(),Dslr.class);
startActivity(b);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.d, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
D_1.java
public class D_1 extends Activity {
ImageView d;
TextView t2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_d_1);
d=(ImageView)findViewById(R.id.imageView_d_1);
d.setScaleType(ScaleType.FIT_XY);
t2=(TextView)findViewById(R.id.textView_d_1);
t2.setMovementMethod(new ScrollingMovementMethod());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.d_1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Où est votre 'CustomListViewAdapter'? – Wizard
Ajoutez 'break;' en dessous de chaque 'case' dans l'instruction' switch'. – activesince93
Fonctionne comme un charm.Homme je ne sais pas comment j'ai fait une telle erreur idiote. – Cr7