我有一个具有重复条目的字符串数组,可以考虑A,B,C,D,E,F,F,G,G,G,G,H,H,H,I,I。其他String-array需要重复项才能具有相同的id。但是,我不希望重复项出现在ListView中。我已经尝试过使用hashsets,但我无法完全集成它。你能不能给我一些关于成功的提示?
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.activity_search);
lv1=(ListView)findViewById(R.id.ListView01);
ed=(EditText)findViewById(R.id.EditText01);
textSearch = new TextView(this);
textSearch = (TextView) findViewById(R.id.textSearch);
textSearch.setText(SearchHeadText);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , searchItems));
ed.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
textlength = ed.getText().length();
arr_sort.clear();
for (String searchItem : searchItems) {
if (textlength <= searchItem.length()) {
if (ed.getText().toString().equalsIgnoreCase((String) searchItem.subSequence(0, textlength))) {
arr_sort.add(searchItem);
}
}
}
lv1.setAdapter(new ArrayAdapter<String>(Rest_Search_Monotherapie.this, android.R.layout.simple_list_item_1, arr_sort));
}
});
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v,
int position, long id) {
// String a = parent.getItemAtPosition(position);
// menuID = (int) id;
a = (String) parent.getAdapter().getItem(position);
menuID = CheckID(a);
Toast.makeText(Rest_Search_Monotherapie.this, a+" "+menuID, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context, Pre_Antistolling_Monotherapie_info.class);
startActivity(intent);
}
});
}
答案 0 :(得分:2)
我认为您可以使用HashMap容器创建自定义适配器。像这样的东西:
HashMap<String, List<String>>
密钥是单一条目,List<Strings>
中包含重复实体。你可以使用公式(排序键数组中的键位置)+ List<String>
答案 1 :(得分:0)
您可以将replaceAll()
与正则表达式一起使用!