如何在对话框 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);
}
}
});
单击列表视图对话框中的 "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);
}
}
});