java - 如何将文本设置为 ListView 中的多个选定项目

标签 java android listview

有人可以告诉我如何在 TextView 中显示 ListView 中的多个选定项目吗? 我只想显示选中的项目,未选择项目时无法显示。 这是我的代码

final String[] favoriteTVShows =
            {
                    "Wolf", "Inception", "Heat", "Gladiator", "Birdman", "Seven", "TVshow1", "TVshow2", "Tvshow3"
            };

    ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, favoriteTVShows);

    ListView theListView = (ListView) findViewById(R.id.theListView);

    theListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    theListView.setItemChecked(2, true);


    theListView.setAdapter(theAdapter);




    theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
            String tvShowPicked = "You selected " + String.valueOf(adapterView.getItemAtPosition(position));

            Toast.makeText(List.this, tvShowPicked, Toast.LENGTH_SHORT).show();
        }
    });


}

最佳答案

  1. 创建一个方法,以便在每次调用 onItemClick 时更新 TextView 文本。

    void updateTextView() { ... }

  2. 使用 getCheckedItemPositions 获取列表中已选中项目的数组并将其添加到您的方法中。 http://developer.android.com/reference/android/widget/AbsListView.html#getCheckedItemPositions()

  3. 使用 StringBuilder 在方法内添加所选项目的标签:

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < selectedItems; i++) {
        sb.append(selectedItems[i]);
        if (i < selectedItems.length - 1) {
            sb.append(", "); // Add a comma for separation
        }
    }
    textView.setText(sb);
    

关于java - 如何将文本设置为 ListView 中的多个选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783015/

相关文章:

java - 在 Java 中处理大型字符串列表

java - 空点异常 - ImageLoader

java - 使用 Google App Engine 开发服务器作为生产服务器

java - 我在哪里可以找到适用于 Android 的亚马逊 S3 图像上传代码的工作示例

java - 尝试运行多个线程时,空指针异常导致强制关闭

asp.net - ListView 中表格的 VB Css 背景色仅绘制表格的可见部分

android - setVisibility(View.GONE) 不删除 ListView 项中的空间

java - Hibernate + Spring 使用多个数据源?

跨不同应用程序的 Android 共享首选项

c# - ListView 页脚行 - 水平滚动