如何在对话框 arg 中打开新的 activity

How to open new activity within a dialog arg

单击列表视图对话框中的 "Advanced" 部分时如何打开 SettingsActivty?这是我的代码

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

试试这个代码:

             @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 是 ID。

编辑:进一步澄清,因为 Advanced 是第二个 String 并且列表位置有一个从零开始的索引(它们从 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);             
         }                                
     }

使用它来调用 activity 高级项目集的第二个位置:

 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);
                                    }
                                }
                            });