嗨,
我正在开发一个简单的文件浏览器应用程序。我已经设置了大部分内容(它列出了不同目录中的所有内容,等等),但我现在遇到的问题(我花了几个小时)是在选择一个列表项时,我想要出现一个自定义列表对话框。我在android开发页面上找到了这段代码,并对其进行了稍微修改。目前,它只给出了什么是选择的举杯,但我需要三个项目是分开的。也就是说,我想做的不仅仅是敬酒,还要让每个选择运行不同的命令。以下是我当前的代码
final CharSequence[] items = {"Info", "Rename", "Delete"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Options for " + file.getName());
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
}).show();
感谢任何能帮我把它分开的人。我已经尝试了if语句的一些不同的变体,但是我尝试的所有东西都失败了。
发布于 2011-03-10 03:10:21
您收到的项目整数是包含您的操作的charsequence数组的索引,因此要获取所选的操作,您可以这样做(在onClick方法中):
if (item == 0)
{
// Info item
}
else if (item == 1)
{
// Rename, and so one
或者你可以这样做:
if (items[item].equals("Info"))
{
// Info item
}
else if (items[item].equals("Rename")
{
// Rename, and so one
}
但第一种方法更可取
发布于 2012-02-14 12:35:40
有点晚了,但这可能会有帮助。我正在使用它来填充对话框中的自定义列表。我使用的是游标,但您也可以使用ArrayAdapter或其他您喜欢的工具:
Dialog aDialog = new Dialog(this);
AlertDialog.Builder bDialog = new AlertDialog.Builder(this);
Cursor books = managedQuery(booksprovider.CONTENT_URI_BOOKS, null, null, null, null);
ListView booksToAdd = new ListView(this);
SimpleCursorAdapter books_list = new SimpleCursorAdapter(this, R.layout.shelves_add, books,
new String[] { BOOKS_TITLE, BOOKS_AUTHOR },//columns to include in view
new int[] { R.id.search_results_title, R.id.search_results_author } );//views to bind columns to
booksToAdd.setAdapter(books_list);
bDialog.setView(booksToAdd);
bDialog.setPositiveButton("Add to Shelf", new DialogInterface.OnClickListener() { });
aDialog = bDialog.create();
发布于 2013-02-24 20:31:07
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String[] name = new String[] {"item1","item2"};
builder.setItems(name, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
//click item 1
break;
case 1:
//click item 2
break;
}
}
});
builder.show();
https://stackoverflow.com/questions/5250765
复制相似问题