Как установить onItemClickListener () в диалоговом окне списка? - PullRequest
1 голос
/ 02 ноября 2011

В моем приложении у меня есть диалоговое окно (dialog1), содержащее Listview с ArrayAdapter, имеющим 3 строковых элемента. Я хочу установить onItemclickListener () в этом списке, с помощью которого я смогу запускать различные действия при нажатии другого элемента. Пожалуйста, помогите.

Ответы [ 4 ]

3 голосов
/ 02 ноября 2011
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(this,R.layout.new_service_request,LIST));

    ListView lv=getListView();
    lv.setTextFilterEnabled(true);


    lv.setOnItemClickListener(new OnItemClickListener(){



        @Override
        public void onItemClick(AdapterView<?> parent, View v, 
                int position, long id) {   
            // When clicked, show a toast with the TextView text  
            Toast.makeText(getApplicationContext(), ((TextView) v).getText(), 
                Toast.LENGTH_SHORT).show();   
        //  int ITEM_CLICKED = (int)getSelectedItemId();
            switch(position){
            case 0:
                Intent intent1 = new Intent(New.this, Next.class);
                startActivity(intent1);
                break;
            case 1:
                Intent intent2 = new Intent(New.this, List.class);
                startActivity(intent2);
                break;
            case 2:
                Intent intent3= new Intent(New.this, HotCard.class);
                startActivity(intent3);
                break;
3 голосов
/ 02 ноября 2011

Посмотрите, поможет ли это

dialog1.setItems(array_of_items, new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            //which is the item number in the list which you can use  
            //to do things accordingly
          }
        });
1 голос
/ 02 ноября 2011

Не уверен, что это будет работать, но вы можете попробовать в диалоговом окне:

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  //do stuff here

  }
}); 
0 голосов
/ 02 ноября 2011

Я бы порекомендовал попробовать воспроизвести пример из http://www.vogella.de/articles/AndroidListView/article.html, а затем попытаться адаптировать его к вашим целям (т. Е. В вашем диалоге). Я обычно нахожу, что проще разобраться в проблеме в простом сценарии использования, прежде чем пытаться вставить ее в мой код. Итак, в вашем ListActivity вы бы назвали

setListAdapter(new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, yourThreeStringArray));

Тогда вместо вызова Toast в примере просто начните свою деятельность примерно так:

Intent myIntent = new Intent(this, MyIntent.class);
startActivityForResult(myIntent, ACTIVITY_CREATE);

(Конечно, вместо MyIntent классом предполагаемого действия.)

Удачи!

...