1

我正在尝试将 Spinner 中的操作与 AutoCompleteTextView 连接起来。我的目标是当用户在微调器中选择某些项目时,需要更改 AutoCompleteTextView 建议列表。

例子:

微调项目:猫,狗,马

字符串 1 : cat1、cat2、cat3、...

字符串 2 :狗 1、狗 2、狗 3、...

String3: horse1, horse2, horse3 ...

因此,当用户在 spinner 中选择“Dogs”并点击 AutoCompleteTextView 后,他会在开始编写后得到以下建议:dog1、dog2、dog3。猫和马类似。

我找不到这个问题的解决方案。

我试图将 onClickListener 放到 AutoCompleteTextView 但似乎不起作用。

autoCompleteTextView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
//some actions
});

并且应该有一些更好的解决方案,因为在屏幕打开后 AutoCompleteTextView 已经被选中。

4

1 回答 1

1

查看 AutoCompleteTextView 的 API - http://developer.android.com/reference/android/widget/AutoCompleteTextView.html

建议是从数据适配器填充的,因此您可以在用户做出微调器选择后修改 autoCOmpleteTextView 的数据适配器:

mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() 
{
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    {
          String[] choices; 
          // set the adapter for the autoCOmpleteTextView here based on what was selected
          if(DOGS) {
                choices = new String[] {"dog1", "dog2", "dog3"};
          } else if (CATS) {
                choices = new String[] {"cat1", "cat2", "cat3"};
          }
          // etc...
          ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
             android.R.layout.simple_dropdown_item_1line, choices);
             myTextView.setAdapter(adapter);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) 
    {
         // nothing
    }
});
于 2013-01-08T21:22:48.897 回答