Как установить onItemClickListener () в диалоговом окне списка?

1

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

Теги:
listview
listadapter
dialog

4 ответа

3
Лучший ответ
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

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

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
          }
        });
  • 0
    также реализовать OnItemClickListener в деятельности
1

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

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

  }
}); 
0

Я бы рекомендовал воспроизвести пример с 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 замена MyIntent классом вашего предполагаемого действия.)

Удачи!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню