首页 > 解决方案 > 如何从 AutoCompleteTextView 中选择文本并将其显示在 ListView 中?

问题描述

public class MainActivity extends AppCompatActivity {
AutoCompleteTextView et;
Button bt;
ListView lt;
ArrayList<Double> addArray = new ArrayList<Double>();
String getInput;
double sum = 0;

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

//创建用于显示列表的适配器,R.array.veggi 是一个包含蔬菜名称的资源文件

    String[] veggi = getResources().getStringArray(R.array.veggi);
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, veggi);
    lt.setAdapter(adapter1);

    et = (AutoCompleteTextView) findViewById(R.id.Et);
    bt = (Button) findViewById(R.id.bt);
    lt =  (ListView)findViewById(R.id.listview);



    // btton to show text or numbers entered in AutoCompleteTextView
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getInput = et.getText().toString();
             double inp = Double.parseDouble(getInput);

            if (addArray.contains(getInput)) {
                Toast.makeText(getBaseContext(), "Item Already Added to array", Toast.LENGTH_SHORT).show();
            } else if (getInput == null || getInput.trim().equals(" ")) {
                Toast.makeText(getBaseContext(), "Input field is Empty", Toast.LENGTH_SHORT).show();

            } else {
                addArray.add(inp);
                ArrayAdapter<Double> adapter = new ArrayAdapter<Double>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);
                lt.setAdapter(adapter);


                ((AutoCompleteTextView) findViewById(R.id.Et)).setText(" ");
            }
        }
    });       
  }
}

//为显示列表创建适配器,如果我删除此代码,它将显示在 LisView 中输入的文本,但我想显示建议并从中选择单词,如 google search kindof

String[] veggi = getResources().getStringArray(R.array.veggi);
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, veggi);
        lt.setAdapter(adapter1);

标签: javaandroidandroid-layoutandroid-linearlayout

解决方案


问题来了

 ArrayList<Double> addArray = new ArrayList<Double>();
 ArrayAdapter<Double> adapter = new ArrayAdapter<Double>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);

将此更改为...

ArrayList<String> addArray = new ArrayList<String>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, addArray);

推荐阅读