首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android自定义列表对话框

Android自定义列表对话框
EN

Stack Overflow用户
提问于 2011-03-10 02:58:28
回答 5查看 21.5K关注 0票数 16

嗨,

我正在开发一个简单的文件浏览器应用程序。我已经设置了大部分内容(它列出了不同目录中的所有内容,等等),但我现在遇到的问题(我花了几个小时)是在选择一个列表项时,我想要出现一个自定义列表对话框。我在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语句的一些不同的变体,但是我尝试的所有东西都失败了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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
}

但第一种方法更可取

票数 11
EN

Stack Overflow用户

发布于 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();
票数 1
EN

Stack Overflow用户

发布于 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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5250765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档