我正在尝试将我的HashSet数组显示到ListView,以便我可以单击一个单元格并显示警告。
我的代码现在在该HashSet数组中有三个项目,能够通过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();
}
}
});
}
}
答案 0 :(得分:2)
HashSet的问题是按定义设置没有顺序,因此允许与ListView直接耦合没有多大意义。但很容易将HashSet转换为ArrayList,如下所示:
List<String> list = new ArrayList<String>(hashset);