从autocompletetextview向listview动态添加项目 public void autocompletemeth(){ //层次结构是代码VO或自动完成[开始] 最终AutoSuggestAdapter适配器=新的AutoSuggestAdapter(此,android.R.layout.simple\u下拉列表\u item\u 1line,lstProduct); ACTV.setAdapter(适配器); 动作设定阈值(1); ACTV.setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){ 字符串selectedItem=(字符串)arg0.getItemAtPosition(位置); Boodschappenlst.add(选择编辑项); ACTV.setOnEditorActionListener(新的TextView.OnEditorActionListener(){ 公共布尔onEditorAction(TextView v、int actionId、KeyEvent事件){ if((event!=null&&(event.getKeyCode()==KeyEvent.KEYCODE_ENTER))| |(actionId==EditorInfo.IME_ACTION_DONE)){ Log.e(“标签”、“完成按下”); ACTV.setText(“”); } 返回false; } }); } //自动完成[结束] }); }
这是我的自动完成方法,它可以通过按“完成”键将项目添加到listview,然后在按下该键后键盘消失,自动完成文本设置为“”。我想让它更有活力。就像现在发生的情况一样,当用户单击suggestionslist中的项目时。它出现在Autocompletetextview字段,然后用户必须在键盘上按done,它就会出现在listview中。但我想要的是它直接添加到listview。当用户单击建议列表中的任何项目时,它不会进入文本字段,用户也不必按“完成”。它只需在click和textfield get reset上将该项添加到listview。从autocompletetextview向listview动态添加项目 public void autocompletemeth(){ //层次结构是代码VO或自动完成[开始] 最终AutoSuggestAdapter适配器=新的AutoSuggestAdapter(此,android.R.layout.simple\u下拉列表\u item\u 1line,lstProduct); ACTV.setAdapter(适配器); 动作设定阈值(1); ACTV.setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){ 字符串selectedItem=(字符串)arg0.getItemAtPosition(位置); Boodschappenlst.add(选择编辑项); ACTV.setOnEditorActionListener(新的TextView.OnEditorActionListener(){ 公共布尔onEditorAction(TextView v、int actionId、KeyEvent事件){ if((event!=null&&(event.getKeyCode()==KeyEvent.KEYCODE_ENTER))| |(actionId==EditorInfo.IME_ACTION_DONE)){ Log.e(“标签”、“完成按下”); ACTV.setText(“”); } 返回false; } }); } //自动完成[结束] }); },android,android-studio,Android,Android Studio,这是我的自动完成方法,它可以通过按“完成”键将项目添加到listview,然后在按下该键后键盘消失,自动完成文本设置为“”。我想让它更有活力。就像现在发生的情况一样,当用户单击suggestionslist中的项目时。它出现在Autocompletetextview字段,然后用户必须在键盘上按done,它就会出现在listview中。但我想要的是它直接添加到listview。当用户单击建议列表中的任何项目时,它不会进入文本字段,用户也不必按“完成”。它只需在click和textfield get
提前感谢。将项目添加到
boodschappenst
后,您需要在相关的列表视图的适配器上调用notifyDataSetChanged()
。此方法应满足您的需要:
public void AutocmpleteMeth() {
// Hieronder is het code voor Autocomplete [BEGIN]
final AutoSuggestAdapter adapter = new AutoSuggestAdapter(this, android.R.layout.simple_dropdown_item_1line, lstProduct);
ACTV.setAdapter(adapter);
ACTV.setThreshold(1);
ACTV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
String selectedItem = (String) arg0.getItemAtPosition(position);
Boodschappenlst.add(selectedItem);
ACTV.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
Log.e("TAG", "Done pressed");
ACTV.setText("");
}
return false;
}
});
}
//Autocmplete [END]
});
}
public void autocompletemeth(){
//层次结构是代码VO或自动完成[开始]
最终AutoSuggestAdapter适配器=新的AutoSuggestAdapter(此,android.R.layout.simple\u下拉列表\u item\u 1line,lstProduct);
ACTV.setAdapter(适配器);
动作设定阈值(1);
ACTV.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共位置单击(AdapterView<?>arg0,视图arg1,内部位置,长arg3){
字符串selectedItem=(字符串)arg0.getItemAtPosition(位置);
Boodschappenlst.add(选择编辑项);
//在此处相关ListView的适配器上调用notifyDatasetChanged(),以识别新项目更改
ACTV.setText(“”);
}
//自动完成[结束]
});
}
sir notifyall()只有三种方法,延迟NotifyDataSetChanged和notify..我是说在您的listview适配器上<代码>适配器。notifyDatasetChanged()
顺便说一句,添加项目是在按键盘上的“完成”后发生的,因此我认为notify不会做很多工作。我已将您的方法更改为仅在单击项目时更新。尝试了相同的问题,就像我只是不希望用户单击键盘上的“按完成”按钮一样,它应该将其添加到listview并显示在我的“自动完成”下。。
public void AutocmpleteMeth() {
// Hieronder is het code voor Autocomplete [BEGIN]
final AutoSuggestAdapter adapter = new AutoSuggestAdapter(this, android.R.layout.simple_dropdown_item_1line, lstProduct);
ACTV.setAdapter(adapter);
ACTV.setThreshold(1);
ACTV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView < ? > arg0, View arg1, int position, long arg3) {
String selectedItem = (String) arg0.getItemAtPosition(position);
Boodschappenlst.add(selectedItem);
// Call notifyDatasetChanged() here on the related ListView's adapter here to recognise new item change
ACTV.setText("");
}
//Autocmplete [END]
});
}