2015-03-05 2 views
0

Как я могу открыть свою настройку, когда я нажимаю на раздел «Дополнительно» в моем диалоговом окне просмотра списка? Вот мой кодКак открыть новую активность в диалоге arg

public void show(){ 
     ListView listView = new ListView(this); 
     listView.setAdapter(new ArrayAdapter<String>(this, R.layout.dialog_list, new String[]{"Themes", "Advanced", "Help"})); 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       // Do your stuff here. 
      } 
     }); 
     Dialog dialog = new Dialog(this); 
     dialog.setTitle("Settings"); 
     dialog.setContentView(listView); 
     dialog.show(); 

    } 

Я знаю, что это будет что-то подобное, но как я могу соответствовать, что в специфический аргумент

Intent iinent= new Intent(Homeactivity.this,secondactivity.class); 
startActivity(iinent); 
+0

вы хотите открыть новый вид деятельности на диалоге кнопку мыши или ListView нажмите кнопку? – Fahim

+0

@Fahim В моем диалоговом окне отображается список. когда я нажимаю на второй элемент, который является расширенным, я хочу, чтобы он открыл новую активность. – user1353517

ответ

1

Попробуйте этот код:

   @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       switch(arg2){ 
       case(1): 
        Intent iinent= new Intent(Homeactivity.this,SettingsActivity.class); 
        startActivity(iinent); 

        }      
       } 

Для дальнейшего уточнения , arg0 - ваш адаптер, arg1 - это вид, который вы нажали, arg2 - это позиция, а arg3 - идентификатор.

Редактировать: уточнить еще больше, так как Advanced является второй строкой, а позиции списка имеют индекс на основе нуля (они начинаются с 0), он будет в позиции №1;

Есть целый ряд других способов, мы можем пойти на это:

через адаптер (возможно, ваш лучший выбор).

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    String item = arg0.getAdapter().getItem(arg1); 
    if(item.equals("Advanced"){ 
     Intent intent = Intent(Homeactivity.this,SettingsActivity.class); 
     startActivity(intent);      
    }         
} 

Через зрения:

@Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     TextView text = (TextView) arg1; 
     if(text.getText().toString().equals("Advanced"){ 
      Intent intent = Intent(Homeactivity.this,SettingsActivity.class); 
      startActivity(intent);    
     }         
    } 
+0

Это работает спасибо! Могу ли я изменить регистр на (2) для элемента ниже? – user1353517

+0

Да, вы также можете внести несколько изменений, чтобы уточнить мой ответ. – jvrodrigues

0

Используйте это, чтобы назвать деятельность по передовым пунктом установлен на позиции второй:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
           @Override 
           public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
            if(position==1){ 
             Intent iinent= new Intent(Homeactivity.this,secondactivity.class); 
             startActivity(iinent); 
            } 
           } 
          }); 
Смежные вопросы