gpt4 book ai didi

java - 为 ListView 只使用一个 AlertDialog

转载 作者:行者123 更新时间:2023-12-01 13:16:47 26 4
gpt4 key购买 nike

我有一个包含 5 个项目的 ListView 。如果我单击一个项目,它会启动一个 AlertDialog,询问我是否要下载该文件。每个项目都有不同的下载网址。我可以只创建一个 AlertDialog 并在所选项目上启动正确的下载 URL,而不是创建 5 个 AlertDialog 吗?

public class MapsListActivity extends Downloader implements OnItemClickListener{
private static final File MAP4 = new File(Environment.getExternalStorageDirectory().getPath() + "/osmdroid/tiles/", "map4.map");
private static final File MAP3 = new File(Environment.getExternalStorageDirectory().getPath() + "/osmdroid/tiles/", "map3.map");
private static final File MAP2 = new File(Environment.getExternalStorageDirectory().getPath() + "/osmdroid/tiles/", "map2.map");
private static final File MAP = new File(Environment.getExternalStorageDirectory().getPath() + "/osmdroid/tiles/", "map.map");





ListView listView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String osmdroidFolder = "/osmdroid/";
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File myOsmdroidFolder = new File(extStorageDirectory + osmdroidFolder);
myOsmdroidFolder.mkdir();

String tilesFolder = "/osmdroid/tiles/";
File myTilesFolder = new File(extStorageDirectory + tilesFolder);
myTilesFolder.mkdir();

listView = (ListView) findViewById(R.id.mapsList);
listView.setOnItemClickListener(this);

}






@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
switch (position){
case 0:{
Intent Info = new Intent(MapsListActivity.this, MyMapsActivity.class);
startActivity(Info);
}
break;
case 1:{

if (MAP.exists()) {
Intent Info = new Intent(MapsListActivity.this, MyMapsActivity.class);
startActivity(Info);
}
else{
DialogDownload();
}
}
break;
case 2:{

if (MAP2.exists()) {
Intent Info = new Intent(MapsListActivity.this, MyMapsActivity.class);
startActivity(Info);
}
else{
DialogDownload();
}
}
break;
case 3:{

if (MAP3.exists()) {
Intent Info = new Intent(MapsListActivity.this, MyMapsActivity.class);
startActivity(Info);
}
else{
DialogDownload();
}
}
break;

case 4:{

if (MAP4.exists()) {
Intent Info = new Intent(MapsListActivity.this, MyMapsActivity.class);
startActivity(Info);
}
else{
DialogDownload();
}
}
break;

}

}


protected void DialogDownload() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Maps not present. Would you like to download ?");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int item) {

/* functions that start the download

downloadmap();
downloadmap2();
downloadmap3();
downloadmap4();

*/


dialog.dismiss();

}
});

builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}

});


AlertDialog alert = builder.create();
alert.show();
}

}

最佳答案

public void DialogDownLoad(String message,int pos)

{

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

// set title
alertDialogBuilder.setTitle("title");

// set dialog message
alertDialogBuilder.setMessage(message)
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
if(pos == 0){
// call downloadMap1();
}
if(pos == 1){
// call downloadMap2();
}
......................
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
............... //your code
}
});

// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}

在你的 onItemClick() 方法中

@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {

message = "Your url";
DialogDownload(message,pos);
}

关于java - 为 ListView 只使用一个 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com