从string.xml动态选择一个特定数组

时间:2014-04-04 17:03:22

标签: android arrays autocomplete filtering

创建了一个有两个AutoCompleteTextViews的应用程序。在第一个用户输入他/她想要的食物种类。例如:意大利语,中文等。

如果假设用户在第一个AutoCompleteTextView中输入中文,则第二个AutoCompleteTextView应仅建议中文食品。在strings.xml中,我创建了一个名为“tastes”的数组,其中包含不同的味道,如意大利语,中文等。然后我有一个名为“Italian”的数组,其中只包含意大利菜,就像明智的数组一样名为“Chinese”其中只包含中餐等。

如果用户在第一个textview中输入他的选择,如何从strings.xml中为第二个textview选择相应的数组?

除了swicth案例,我可以使用什么?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_find);

    this.text1 = (AutoCompleteTextView) findViewById(R.id.taste);
     String[] tastes = getResources().getStringArray(R.array.tastes); 
    ArrayAdapter<String> adapterTaste = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, taste);
    this.text1.setAdapter(adapterTaste);
    this.text1.setThreshold(1);



     this.text2 = (AutoCompleteTextView) findViewById(R.id.item);
     String[] items = getResources().getStringArray(R.array.Chinese);
     // In place of Chinese in the above line, the feed from text1 ie users choice. 
    ArrayAdapter<String> adapterItem = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, item);
    this.text2.setAdapter(adapterItem);
    this.text2.setThreshold(1);

        }

1 个答案:

答案 0 :(得分:0)

setOnItemSelectedListener()是您正在寻找的方法。

在您的情况下,您将获得源代码,

text1.setOnItemSelectedListener(new OnItemSelectedListener(){
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){
        // Use the position to get which item was selected i.e Chinese or Italian
        // Create an adapter for the second AutoComplete
        // Set the adapter for second AutoCompleteTextView
    }
});

Method Documented here 希望这会有所帮助:)