【问题标题】:Display my HashSet to a listVIew将我的 HashSet 显示到 listVIew
【发布时间】:2014-10-03 08:17:33
【问题描述】:

我正在尝试将我的 HashSet 数组显示到 ListView,以便我可以单击单元格并显示警报。

我的代码现在在该 HashSet 数组中包含三个项目,并且能够通过 EditText 添加更多项目,该 EditText 捕获用户输入并将其存储在 HashSet 中。

我想知道是否有办法获取 HashSet 项并将它们显示到列表视图。我相信列表视图允许我单击一个单元格并通过警报显示其他随机信息。

这可能吗?

这是我的代码:

public class MainActivity extends Activity {

    Button aButton; // Global Scope
    Button sButton;
    TextView text2;
    EditText eText;
    HashSet<String> list = new HashSet<String>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_layout); 

        aButton = (Button) this.findViewById(R.id.button1);
        text2 = (TextView) this.findViewById(R.id.textView1);

        aButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


                list.add("Books");
                list.add("Newspapers");
                list.add("Magazines");
                String listString = "";

                for (String s : list) {
                    listString += s + " - ";
                }
                text2.setText(listString);
                }
            });




        sButton = (Button) this.findViewById(R.id.button2);
        eText = (EditText) this.findViewById(R.id.editText1);

        sButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {


                 //Log.v("EditText", eText.getText().toString());
                 if( !list.add(eText.getText().toString()) )
                {
                     System.out.println("Not Unique Item");
                     Toast.makeText(getApplicationContext(), "Already Saved!",Toast.LENGTH_LONG).show();
                } else 
                {
                    System.out.println("Unique Entry Added");
                    Toast.makeText(getApplicationContext(), "Saved To Items.", Toast.LENGTH_LONG).show();

                }


            }

        });


        }

    }

【问题讨论】:

  • 为什么一定是HashSet?使用普通的ArrayList,创建一个ArrayAdapter并绑定到一个ListView

标签: java android listview hashset


【解决方案1】:

HashSet 的问题是集合根据定义没有顺序,因此允许与 ListView 直接耦合没有多大意义。但是很容易将 HashSet 转换为 ArrayList,如下所示:

List<String> list = new ArrayList<String>(hashset);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-08-09
    • 2020-11-03
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多