我使用ArrayList和ArrayAdapter来记录AutoCompleteTextView的内容,我想在修改列表时动态刷新AutoCompleteTextView.在webviewClient中触发列表的修改.
但是,我的代码不起作用.只有在重新加载整个活动时才能更新AutoCompleteTextView.根本没有动态更新.任何人都可以帮我找出问题所在吗?
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mHistory); //mHistory is the list of data
adapter.setNotifyOnChange(true);
mEditText1.setAdapter(adapter); //mEditText1 is the AutoCompleteTextView
mWebView1.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url){
super.onPageFinished(view, url);
if (!mHistory.contains(mWebView1.getUrl())){
mHistory.add(mWebView1.getUrl());
writeList(view.getContext(), mHistory, "history"); //this is to store the list elsewhere
}
adapter.notifyDataSetChanged();
}
});
Run Code Online (Sandbox Code Playgroud) 自动完成文本正确列出一切正常..但问题是一旦我单击自动完成项目,它就没有选择。
当我单击项目时,Logcat 显示“无选定项目”。
Autocomplte.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// Log.d("your selected item",""+s1.get(position));
System.out.println("sajdksadkasjdksajdksa");
// s1.get(position) is name selected from autocompletetextview
// now you can show the value on textview.
}
});
Run Code Online (Sandbox Code Playgroud)
//--------------适配器类
public class LoadLocationBasedonCountry extends BaseAdapter implements
Filterable {
private ArrayList<CountryLocation> locList;
private ArrayList<CountryLocation> storedLocList;
private Activity mActivity;
private LayoutInflater inflater;
public LoadLocationBasedonCountry(Activity activity,
ArrayList<CountryLocation> joes) {
this.mActivity = activity;
this.locList = joes;
storedLocList = new ArrayList<CountryLocation>(joes);
}
@Override …Run Code Online (Sandbox Code Playgroud) 所以我有一个自动完成视图,当我输入时显示下拉...但我希望在活动开始时显示下拉列表.所以我发现这个答案说使用showDropDown()应该工作.当在任何TouchListener或任何其他用户触发的事件上调用时,它确实适用于我的情况.但是如果我直接在onCreate()中使用它就无法工作...我的onCreate()中的以下代码可以工作
final AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.autoCompleteUserName);
String[] users = getResources().getStringArray(R.array.users);
ArrayAdapter<?> adapter = new ArrayAdapter<Object>(this,R.layout.compose_ac_list_item,users);
actv.setAdapter(adapter);
actv.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
// WORKS IF USED ON TOUCH
actv.showDropDown();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
以下不起作用
final AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.autoCompleteUserName);
String[] users = getResources().getStringArray(R.array.users);
ArrayAdapter<?> adapter = new ArrayAdapter<Object>(this,R.layout.compose_ac_list_item,users);
actv.setAdapter(adapter);
actv.showDropDown();
Run Code Online (Sandbox Code Playgroud) 我有AutoCompleteTextView一个AlertDialog.带有建议的下拉列表部分由键盘隐藏(见屏幕截图).结果是我无法滚动列表.

我已经设法将对话框移动到屏幕顶部以获得更多空间.当我设置android:dropDownHeight为像150dp这样的小值时,下拉列表不再被键盘隐藏,滚动工作正常但设置dropDownHeight为修复值似乎不是一个好的解决方案.我想避免使用"魔术数字",否则我无法保证它可以在所有屏幕上使用.
我怎么解决这个问题?
我正在尝试实现一个AutoCompleteTextView以显示自定义对象。因此,我实现了自己的 ArrayAdapter,但它不起作用,当我在文本字段中输入内容时没有显示任何建议。有人能帮我吗?
public class AutoCompleteArrayAdapter extends ArrayAdapter<Object>{
List<Object> mObjectList;
Context mContext;
LayoutInflater mInflater;
int mResourceId;
public AutoCompleteArrayAdapter(Context context, int resource, List<Object> objectList) {
super(context, resource, objectList);
mResourceId = resource;
mObjectList = objectList;
mContext = context;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null) {
convertView = mInflater.inflate(mResourceId, parent, false);
}
Object object = mObjectList.get(position);
TextView textViewItem = (TextView) convertView.findViewById(R.id.textView_dropDown);
textViewItem.setText(object.getString());
return convertView;
}
@Override
public int getCount() {
return …Run Code Online (Sandbox Code Playgroud) android autocompletetextview android-arrayadapter android-adapter
我使用AutoCompleteTextView来提供地址建议.
我想要做的是当用户输入地址(fe"Ma")时,建议显示为"Mary,Madley,Ma ......".
然后,当用户选择其中一个建议时,他立即获得包含整个地址的另一个建议.
例如:他选择了"玛丽",并得到了诸如"Mary 123,Boston","Mary 1566,New York","Mary Jane 569,New York"等建议.
问题是建议填充适配器,但未显示.选择后,下拉列表不会显示.
到目前为止,我的文本观察程序被分配给AutoCompleteTextView负责建议:
TextWatcher textWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
if(etStreet.isPerformingCompletion())
return;
List<String> arrayValues = getValues();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_dropdown_item_1line, arrayValues);
etUlica.setAdapter(adapter);
}
};
Run Code Online (Sandbox Code Playgroud)
我试过在项目点击,文本更改和其他所有事件上调用showDropDown(),但它不会显示.它仅显示键盘上的用户类型.
我正在尝试使用 Android Studio 中的 autocompletetextview 为用户键入的每个字母提供建议。
每次键入字母时,都会像这样进行 API 调用,
http://dev.markitondemand.com/MODApis/Api/v2/Lookup/json?input=app
http://dev.markitondemand.com/MODApis/Api/v2/Lookup/json?input=appl
http://dev.markitondemand.com/MODApis/Api/v2/Lookup/json?input=apple
Run Code Online (Sandbox Code Playgroud)
从 API 调用返回的 JSON 数组填充在建议列表框中。
到目前为止,我得到了这样的activity_main.xml文件,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.raam.stockmarketviewer.MainActivity">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/stocks"
android:hint="@string/hint" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在此之后,我应该如何构建MainActivity.java文件以完成自动建议功能?
如果我想AutoCompleteTextView从Firebase将数据列表加载到android中,我该怎么做?
我怎么想象:
我使用与a类似的东西获取数据FirebaseRecyclerAdapter,并将该适配器设置为ACTV.例如,如果我有这些数据:
AutoComplete:{
JKDJKADJKADFJAKD:{
name:"Hakuna Matata , your orangeness -- I mean your highness, Mr. Trump!"
}
JDKIKSLAIJDKDIKA:{
name:"Hakuna Matata! I ask not to take offense by the previous statement."
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入"Hakuna Matata"时,ACTV应该有两个陈述作为建议.这有什么特殊的Firebase适配器吗?
android autocompletetextview firebase firebase-realtime-database firebaseui
我遇到了 AutoCompleteTextView 下拉组件的问题。
正如您从下图中看到的,弹出窗口内有一些我无法去掉的黑色边框。
黑色边框:

我是一个 Android 菜鸟,我已经尝试了基本上所有的方法并取得了成功。
下面的代码,我正在使用。
活动.xml:
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:hint="Categoria"
android:layout_marginRight="@dimen/spacing_xlarge"
app:hintEnabled="true"
app:boxBackgroundColor="@color/white"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu">
<AutoCompleteTextView
android:dropDownSelector="@color/white"
android:id="@+id/private_place_dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dropDownHeight="300dp"
android:inputType="none"
android:drawableTint="@color/white"
android:backgroundTint="@color/white"
android:editable="false"
android:textColor="@color/piumaBaseColor"
/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
dropdown_menu_popup_item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="@dimen/spacing_medium"
android:paddingRight="@dimen/spacing_medium"
android:paddingBottom="@dimen/spacing_medium"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:gravity="center_vertical"
android:background="@color/white"
android:backgroundTint="@color/white"
android:textColor="@color/grey_extradark"
android:text="test"/>
Run Code Online (Sandbox Code Playgroud)
你能帮我么?万分感谢!
我正在开发android应用程序.在其中我使用了AutoCompleteTextview.它在我的应用程序中工作正常,当我想只选择一个文本,但如果我想选择多个文本怎么办?选择一个文本后,它没有得到更多的建议.Plz解决了我的问题.谢谢.
android ×10
dropdown ×2
adapter ×1
autocomplete ×1
firebase ×1
firebaseui ×1
java ×1
listview ×1
scroll ×1
xml ×1