如何根据列表视图项的名称分隔值? (详细说明)

时间:2019-05-18 12:19:45

标签: java android listview

两个列表视图项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>

1 个答案:

答案 0 :(得分:0)

如果列表(List<String> list)同时包含DEF和ABC,它将显示在两个列表中。解决方案是创建2个变量List<String> list。如果您可以扩展DEF ABC的含义,我将为您提供更详细的答案。它是字面上的“ ABC”和“ DEF”,还是字符串的一部分?如果这是一部分,则可以使用正则表达式过滤列表。