Reputation: 115
I want to be able to start a new activity using the Intent class. I know how to start an activity by using these lines of code:
Intent myIntent = new Intent(v.getContext(), bylocationactivity.class);
startActivityForResult(myIntent, 0);
But how do i specify which item has been clicked? So when I click "By Location" I can start the bylocationactivity.class and so on?
public class bonesactivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
ListView boneslist;
String categorieslist[]={"Alphabetically","By Location","Specialty Tests"};
super.onCreate(savedInstanceState);
setContentView(R.layout.boneslayout);
boneslist=(ListView)findViewById(R.id.boneslayout);
boneslist.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , categorieslist));
boneslist.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,int position, long id)
{
}
});
}
}
Upvotes: 3
Views: 10229
Reputation: 116
Code which demonstrates single OnItemClick Listner for Multiple Buttons
You can use the same for what u call as items!
// On Click Listener for all 6 buttons
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//int clickedButtonIs;
if (v == button1)
{
// call intent 1;
}
else if (v == button2)
{
// call intent 2;
}
else if (v == button3)
{
// call intent 3;
}
else if (v == button4)
{
// call intent 4;
}
else if (v == button5)
{
// call intent 5;
}
else if (v == button6)
{
// call intent 6;
}
}
Upvotes: 2
Reputation: 31466
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = null;
switch(position) {
case 1:
intent = new Intent(getApplicationContext(), Activity2.class);
startActivity(intent);
break;
case 2:
intent = new Intent(getApplicationContext(), Activity3.class);
startActivity(intent);
break;
default:
}
}
});
Upvotes: 6
Reputation: 3578
You can use the position
parameter in onItemClick
to get the string you want out of the categoriesList array. So:
String category = categoriesList.get(position);
Probably have to make categoriesList a member variable, though.
Upvotes: 0