I have a listView, and each item in this listview should lead to an activity , all those activities have the same structure i wannna change just the text and pictures for each one ! is there anyway to do that?
public class SaladsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_products);
ArrayList<Product> prod= new ArrayList<Product>();
prod.add(new Product(R.drawable.sa1,"Mini Salad","1.5 $","more"));
prod.add(new Product(R.drawable.sa2,"Salade Pêcheur","1.5 $","more"));
prod.add(new Product(R.drawable.sa3,"Salade Italienne","1.5 $","more"));
prod.add(new Product(R.drawable.sa4,"Salade César","1.5 $","more"));
TypeProducts itemsAdapter = new TypeProducts(this, prod);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(itemsAdapter);
list.setAdapter(itemsAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
Intent prod = new Intent(ProductsActivity.this, A.class);
startActivity(prod);
}
if(position==1){
Intent prod = newIntent(ProductsActivity.this,B.class);
startActivity(prod);
}
if(position==2){
Intent prod = new Intent(ProductsActivity.this, C.class);
startActivity(prod);
}
if(position==3){
Intent prod = new Intent(ProductsActivity.this, D.class);
startActivity(prod);
}
});
}
}
I dont wanna create A,B,C,D Activities i wanna create just one but it will depend on each item!
Using Intent you can do this. Like Following:
listview=(ListView) findViewById(R.id.list_view);
listViewArrayAdapter=new ListViewArrayAdapter(this,listviewArrayList);// set data for your arraylist (listviewArrayList) before using it here
listview.setAdapter(listViewArrayAdapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putString("yourTextId",listviewArrayList.get(position).getYourText);
bundle.putInt("dataImg", listviewArrayList.get(position).getImageId());
Intent intent = new Intent(MainActivity.this, SeconActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
And inside SecondActivity something like this.
String text = getIntent().getExtras().getString("yourTextId");
int imageId = getIntent().getExtras().getInt("dataImg");