为什么自动完成TextView不会以动态方式更改数据?

时间:2014-10-16 10:23:42

标签: android autocomplete notifydatasetchanged

我有自动完成的textview并提供了一些建议。但我想在用户点击按钮时更改建议数据。 这是我的代码

public class MainActivity extends Activity {
ArrayAdapter adapter;
AutoCompleteTextView view;

Button btn; ArrayList<String>data;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    view=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
    btn=(Button)findViewById(R.id.button1);
    data=new ArrayList<String>();


    for(int i=0;i<100;i++)
    {
        data.add("Autocomplete"+i);
    }

     adapter = new ArrayAdapter
               (this,android.R.layout.simple_list_item_1,data);
    view.setAdapter(adapter);

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

                        data.clear();
                        Toast.makeText(getApplicationContext(), "Data size"+data.size(), Toast.LENGTH_LONG).show();
                            for(int i=0;i<100;i++)
                        {
                            data.add("NewData"+i);
                        }   
                            adapter.notifyDataSetChanged(); Toast.makeText(getApplicationContext(), "Data size= "+data.size(), Toast.LENGTH_LONG).show();

        }
    });


}

它不起作用。以前的数据显示。我现在能做什么?

1 个答案:

答案 0 :(得分:0)

如果有人遇到AutoCompleteTextView的这个问题,notifiydatasetchaged()将无效。

您必须更新列表数据并再次设置适配器。

 'adapter_email =new AutoSuggestAdapter(this,R.layout.spinner_autofill_av_dialouge,Merged);

    av_email.setAdapter(adapter_email);'

使用上述两行而不只是.setAdapter