Android 根据edittext字符串返回不同的列表

Android 根据edittext字符串返回不同的列表,android,Android,我正在尝试显示一个包含衣服项目的列表视图。.列表视图将显示在单击编辑文本下的按钮之后。编辑文本下的“enter”。列表将根据编辑文本上的字符串(颜色)而有所不同。(注:Listview中的字符串是衣服的名称和引用!) 例如: 如果用户在编辑文本中选择“颜色1,颜色2,” 一个列表将显示包含这些颜色的衣服的名称和参考:“Item1,Item2” 因为只有Item1和Item2包含color1和color2! 可能的项目(衣服)列表为100,编辑文本中可能的输入为6种颜色(颜色1、颜色2、颜色3、颜

我正在尝试显示一个包含衣服项目的
列表视图。.列表视图将显示在单击
编辑文本下的
按钮之后。
编辑文本下的
“enter”
。列表将根据
编辑文本上的字符串(颜色)而有所不同。
(注:Listview中的字符串是衣服的名称和引用!)

例如: 如果用户在编辑文本中选择“颜色1,颜色2,” 一个
列表
将显示包含这些颜色的衣服的名称和参考:“Item1,Item2” 因为只有Item1和Item2包含color1和color2! 可能的项目(衣服)列表为100,编辑文本中可能的输入为6种颜色(颜色1、颜色2、颜色3、颜色4、颜色5、颜色6)…每次用户选择一组颜色时,列表将显示可能的项目,而不是包含这些颜色的项目!(如本文所述:)

PS:我已经创建了一个自定义的edittext,并将适配器与不同的字符串(Color1..Color6)一起使用,我知道如何从edittext获取字符串..但是如何根据edittext的字符串(选择的颜色)创建和更新具有不同项目的listview是问题!谢谢! 如何做到这一点?我在互联网上搜索过类似的例子,但运气不好

这是我目前的代码: MainActivity.java

public class DecisionTree extends AppCompatActivity {
    private static final String TAG = DecisionTree.class.getSimpleName();
    TextView txt,txt2;
    com.mycardboarddreams.autocompletebubbletext.MultiSelectEditText editText;
    String data;
    private ListView listView;
    private ItemAdapter itemListAdapter;
    private List<Item> itemList = new ArrayList<Item>();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_decision_tree);
        /////////////////////////////////////////////////
        listView = (ListView) findViewById(R.id.diseases_list_container);

        itemListAdapter = new ItemAdapter(itemList, this);
        listView.setAdapter(itemListAdapter);
        listView.setFastScrollEnabled(true);

        ////////////////////////////////////////////////
        // add some items
        itemList.add(new Item("Jeans Refnum 2520"));
        itemList.add(new Item("T shirt Refnum 1220"));
            .
.
.
.
.
A long list of 100 items

        //add new items and changes to adapter
        itemListAdapter.notifyDataSetChanged();

        ////////////////////////////////////////////////
        //Text
        txt = (TextView) findViewById(R.id.textView);
        txt2 = (TextView) findViewById(R.id.textView2);
        txt.setText("Given a set of clinical features, this tool should provide you with a reasonable and relevant differential diagnsosis (not the definitive diagnosis!)");
        txt2.setText("Remember, this tool adds to your diagnostic skills and serves as an educational aid. It is not meant to replace your clinical judgement.");


       //the edittext
        editText = (com.mycardboarddreams.autocompletebubbletext.MultiSelectEditText) findViewById(R.id.auto_text_complete);

        //Add some sample items
        List<SampleItem> sampleItems = Arrays.asList(
                new SampleItem("Blue"),
                new SampleItem("Red"),
                new SampleItem("Orange"),
                new SampleItem("Yellow"),
                new SampleItem("vert"),
                new SampleItem("rouge")
        );

        editText.addAllItems(sampleItems);


        //Get the ListView associated with the MultiSelectEditText
        ListView list = editText.getListView();

        //Add it to a FrameLayout somewhere in the activity
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        list.setLayoutParams(params);


        final FrameLayout frame = (FrameLayout) findViewById(R.id.auto_list_container);
        frame.addView(list);



        // The output
        //frameLayout = (FrameLayout) findViewById(R.id.auto_list_container2);

        //Set a listener on bubble clicks
        //editText.setBubbleClickListener(new com.mycardboarddreams.autocompletebubbletext.MultiSelectEditText.BubbleClickListener<SampleItem>() {

           /* @Override
            public void onClick(SampleItem item) {
                //Log.d(TAG, "Item: " + item.getReadableName());
                Toast.makeText(DecisionTree.this, item.getReadableName(),
                        Toast.LENGTH_LONG).show();
                //displayListPatho();

            }
        });*/

           //-----------------------------------------END ONCREATE
    }

    public void blahblah (View view) {
        data= editText.getText().toString();
        listView.setVisibility(View.VISIBLE);
        Toast.makeText(DecisionTree.this, data,
                Toast.LENGTH_LONG).show();
    }
公共类决策树扩展了AppCompatActivity{
私有静态最终字符串标记=DecisionTree.class.getSimpleName();
TextView txt,txt2;
com.mycardboarddreams.autocompletebubletext.MultiSelectEditText;
字符串数据;
私有列表视图列表视图;
私有ItemAdapter itemListAdapter;
private List itemList=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u decision\u tree);
/////////////////////////////////////////////////
listView=(listView)findViewById(R.id.diseases\u list\u容器);
itemListAdapter=新的ItemAdapter(itemList,this);
setAdapter(itemListAdapter);
setFastScrollEnabled(true);
////////////////////////////////////////////////
//添加一些项目
添加(新项目(“牛仔裤参考编号2520”);
项目列表。添加(新项目(“T恤参考编号1220”);
.
.
.
.
.
一长串的100个项目
//向适配器添加新项目和更改
itemListAdapter.notifyDataSetChanged();
////////////////////////////////////////////////
//正文
txt=(TextView)findViewById(R.id.TextView);
txt2=(TextView)findViewById(R.id.textView2);
txt.setText(“给定一组临床特征,此工具应为您提供合理和相关的鉴别诊断(而不是最终诊断!)”;
setText(“记住,这个工具增加了你的诊断技能,并起到了教育帮助的作用。它并不是要取代你的临床判断。”);
//编辑文本
editText=(com.mycardboarddreams.autocompletebubbletext.MultiSelectEditText)findViewById(R.id.auto\u text\u complete);
//添加一些示例项
List sampleItems=Arrays.asList(
新样本项目(“蓝色”),
新样本项目(“红色”),
新样本项目(“橙色”),
新样本项目(“黄色”),
新样本项(“vert”),
新样本项目(“胭脂”)
);
editText.addAllItems(样本项);
//获取与MultiSelectEditText关联的ListView
ListView list=editText.getListView();
//将其添加到活动中的某个框架布局中
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
list.setLayoutParams(参数);
最终FrameLayout frame=(FrameLayout)findviewbyd(R.id.auto\u list\u容器);
frame.addView(列表);
//输出
//frameLayout=(frameLayout)findViewById(R.id.auto\u list\u container2);
//在气泡单击上设置侦听器
//editText.setBubbleClickListener(新建com.mycardboarddreams.AutoCompleteBubleText.MultiSelectEditText.BubbleClickListener(){
/*@覆盖
公共void onClick(示例项){
//Log.d(标记“Item:+Item.getReadableName());
Toast.makeText(DecisionTree.this,item.getReadableName(),
Toast.LENGTH_LONG).show();
//displayListPatho();
}
});*/
//-----------------------------------------结束一次创建
}
公共无效blahblah(视图){
data=editText.getText().toString();
setVisibility(View.VISIBLE);
Toast.makeText(DecisionTree.this,data,
Toast.LENGTH_LONG).show();
}

问题很长,但不清楚您到底想要什么? 如果我理解正确,你应该这样做: 从EditText获取您的
字符串

String[] items = string.split(" ");
ListView listView = (ListView)findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, 
        android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
String[]items=String.split(“”);
ListView ListView=(ListView)findViewById(R.id.ListView);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,items);
setAdapter(适配器);

这有什么问题吗?

我实现了我想要的代码:
1/使用适配器创建了一个列表
2/每次单击时,适配器上的项目都会被删除(
clearAdapter();
)并添加新项目
(itemList.add(new Item(“Jenny”);)
,具体取决于编辑文本中的字符串
(if(data.equals(“鼻出血”)
)以及适配器收到
itemListAdapter.notifyDataSetChanged();

Ps:blahblah(
=点击按钮)

public void blahblah(视图){
data=editText.getText().toString()
   public void blahblah (View view) {
        data= editText.getText().toString();
        if (data.equals("Epistaxis, ")){
        clearAdapter();
        itemList.add(new Item("Jenny"));
        itemList.add(new Item("Bladna"));
        itemList.add(new Item("Drafat"));
        itemListAdapter.notifyDataSetChanged();
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                if (position == 0) {
                    Intent i=new Intent(DecisionTree.this, Figures.class);
                    startActivity(i);
                } else if (position == 1) {
                    //code specific to 2nd list item
                    Toast.makeText(getApplicationContext(), "Place Your Second Option Code", Toast.LENGTH_SHORT).show();
                } else if (position == 2) {

                    Toast.makeText(getApplicationContext(), "Place Your Third Option Code", Toast.LENGTH_SHORT).show();
                }

            }
        }); }
        else if (data.equals("Nasal Discharge, ")) {
            clearAdapter();
            itemList.add(new Item("Jenny2"));
            itemList.add(new Item("Bladna2"));
            itemList.add(new Item("Drafat2"));
            itemListAdapter.notifyDataSetChanged();

    }