繁体   English   中英

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

[英]How to setText to multiple selected Items from a 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 时更新文本视图文本。

    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);
Public void onItemClick(){
    String selectedItems="";
    SparseBooleanArray sparse=listview.getcheckedItemPositions();
    for(int i=0;i<adapterview.getCount();i++){
       if(sparse.get(i)){
          selectedItems+=adapterView.getItemAt(i).toString();
        }
    }
    Textview.setText("you selected"+selectedItems);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM