两个列表视图项ABC和DEF共享同一列表视图。当我输入“ ABC”作为输入时,它会显示在ABC共享的列表视图中。但是,当我输入“ DEF”作为输入时,它将显示在DEF与“ ABC”共享的列表视图中。
我希望所有“ ABC”项都显示在ABC的列表视图中,而“ DEF”项显示在DEF的列表视图中。
activity.class:
public static ArrayAdapter<String> adapter;
public static String st2;
public static String st1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
listView=(ListView)findViewById(R.id.listView);
textView=(TextView)findViewById(R.id.textView);
listItem = getResources().getStringArray(R.array.items);
adapter = new ArrayAdapter<String>(activity.this, android.R.layout.simple_list_item_multiple_choice, listItem);
adapter.notifyDataSetChanged();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
// TODO Auto-generated method stub
st2= (String) listView.getItemAtPosition(position);
st1=(String) listView.getItemAtPosition(position);
if(st1.equals("ABC"))
{
startActivity(newIntent(activity.this,new_activity.class))
}
if(st2.equals("DEF"))
{
startActivity(newIntent(activity.this,new_activity.class))
}
}
});
}
new_activity.class
public static ArrayAdapter<String> arrayadapter;
public static List<String> list = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
listView=(ListView)findViewById(R.id.listView);
textView=(TextView)findViewById(R.id.textView);
String str=edittext.getText().toString();
list.add(str);
adapter = new ArrayAdapter<String>(new_activity.this, android.R.layout.simple_list_item_multiple_choice,list);
adapter.notifyDataSetChanged();
if(str.equals("ABC"))
{
if(st1.equals(str))
{
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter); //The first time I give "ABC" as input, it shows up in the listview shared by st1(ABC).
}
}
if(str.equals("DEF"))
{
if(st2.equals(str))
{
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setAdapter(adapter);// The second tie I give "DEF" as input, it shows up in the listview shared by st2(DEF), but along with the "ABC" item.
}
}
}
我的strings.xml-
</string>
<string-array name="items">
<item>ABC</item>
<item>DEF</item>
</string-array>
答案 0 :(得分:0)
如果列表(List<String> list
)同时包含DEF和ABC,它将显示在两个列表中。解决方案是创建2个变量List<String> list
。如果您可以扩展DEF ABC的含义,我将为您提供更详细的答案。它是字面上的“ ABC”和“ DEF”,还是字符串的一部分?如果这是一部分,则可以使用正则表达式过滤列表。