gpt4 book ai didi

java - 如何根据 ListView 项的名称分离值? (详尽的描述)

转载 作者:行者123 更新时间:2023-11-30 12:05:31 25 4
gpt4 key购买 nike

两个 ListView 项 ABC 和 DEF 共享同一个 ListView 。当我输入“ABC”时,它显示在 ABC 共享的 ListView 中。但是当我将“DEF”作为输入时,它会与“ABC”一起显示在 DEF 共享的 ListView 中。

我希望所有“ABC”项都显示在 ABC 的 ListView 中,而“DEF”项显示在 DEF 的 ListView 中。

Activity 类:

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>

最佳答案

如果列表(List<String> list)同时包含 DEF 和 ABC,它将同时出现在两个列表中。解决方案是创建 2 个变量 List<String> list .如果你能稍微扩展一下DEF ABC代表什么,我会给你更详细的答案。它是字面上的“ABC”和“DEF”还是字符串的一部分?如果是一部分,您可以使用正则表达式过滤列表。

关于java - 如何根据 ListView 项的名称分离值? (详尽的描述),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56198876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com