Java 将我的哈希集显示为列表视图
我试图将我的HashSet数组显示到一个ListView中,这样我就可以单击一个单元格并显示一个警报 我的代码现在在HashSet数组中有三个项,能够通过一个EditText添加更多项,EditText捕获用户输入并将其存储在HashSet中 我想知道是否有办法获取HashSet项并将其显示到listview。我相信列表视图允许我点击一个单元格,并通过警报显示额外的随机信息 这可能吗 这是我的密码:Java 将我的哈希集显示为列表视图,java,android,listview,hashset,Java,Android,Listview,Hashset,我试图将我的HashSet数组显示到一个ListView中,这样我就可以单击一个单元格并显示一个警报 我的代码现在在HashSet数组中有三个项,能够通过一个EditText添加更多项,EditText捕获用户输入并将其存储在HashSet中 我想知道是否有办法获取HashSet项并将其显示到listview。我相信列表视图允许我点击一个单元格,并通过警报显示额外的随机信息 这可能吗 这是我的密码: public class MainActivity extends Activity {
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();
}
}
});
}
}
公共类MainActivity扩展活动{
按钮邻接;//全局范围
按钮按钮;
TextView text2;
编辑文本;
HashSet list=新的HashSet();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.new_layout);
aButton=(按钮)this.findViewById(R.id.button1);
text2=(TextView)this.findViewById(R.id.textView1);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
列表。添加(“书籍”);
列表。添加(“报纸”);
列表。添加(“杂志”);
字符串listString=“”;
用于(字符串s:列表){
listString+=s+“-”;
}
text2.setText(listString);
}
});
sButton=(Button)this.findViewById(R.id.button2);
eText=(EditText)this.findViewById(R.id.editText1);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
//Log.v(“EditText”,eText.getText().toString());
如果(!list.add(eText.getText().toString()))
{
系统输出打印项次(“非唯一项”);
Toast.makeText(getApplicationContext(),“已保存!”,Toast.LENGTH\u LONG.show();
}否则
{
System.out.println(“添加的唯一条目”);
Toast.makeText(getApplicationContext(),“保存到项目”,Toast.LENGTH_LONG.show();
}
}
});
}
}
HashSet的问题是,根据定义,集合没有顺序,因此允许与ListView直接耦合没有多大意义。但将哈希集转换为ArrayList很容易,如下所示:
List<String> list = new ArrayList<String>(hashset);
List List=newarraylist(hashset);
为什么它必须是哈希集?使用普通ArrayList,创建ArrayAdapter并将其绑定到ListView