2012-05-15 1 views
3

Я хочу, чтобы начать новую деятельность, используя класс Intent. Я знаю, как начать деятельность, используя следующие строки кода:Как я могу использовать OnItemClickListener для запуска нового намерения, на основе которого нажимается элемент?

Intent myIntent = new Intent(v.getContext(), bylocationactivity.class); 

startActivityForResult(myIntent, 0); 

Но как указать, какой элемент был щелкнул? Поэтому, когда я нажимаю «По местоположению», я могу запустить класс bylocationactivity.class и т. Д.?

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) 
      { 

      } 
     }); 
    }  
} 

ответ

2

код, который демонстрирует единый OnItemClick для нескольких у слушателя кнопок

Вы можете использовать то же самое для того, что у называют в качестве элементов!

// По щелчку Слушатель для всех 6 кнопок

@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; 
    } 
} 
0

Вы можете использовать параметр position в onItemClick, чтобы получить строку, которую вы хотите из массива categoriesList. Таким образом:

String category = categoriesList.get(position); 

Возможно, необходимо сделать категорииСледует переменная-член.

6
@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: 
    } 
    } 

});

+0

Может, вероятно, объявить 'startActivity' один раз, чтобы сделать его немного чище. –