我正在实现一个AutoCompleteTextView,我需要所有联系人的姓名和电子邮件.我发现这个片段我异步运行,但速度非常慢.
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
while (emailCur.moveToNext()) {
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
autoCompleteAdapter.add(name + " - " + email);
}
emailCur.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在执行一种内部查询,我认为这是问题所在.有没有办法调整它并使其更快?
<AutoCompleteTextView
android:id="@+id/product"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="product"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="15dp" />
Run Code Online (Sandbox Code Playgroud)
这是我的AutoCompleteTextView代码.
问题是我想输入一些文字,然后点击Next软键盘.Next没有出现在软键盘上,但没有将光标移到下一个EditText.在同一个屏幕上,所有EditText都有相同的代码,它们工作正常.EditText在这种情况下,AutoCompleteTextView与正常有什么不同?
我有一个AutoCompleteTextView用来从长列表中选择一个项目.用户应该只能从列表中选择预定的项目.他们不应该进入他们自己的项目.
我检查以确保他们只提交列表中的项目的方法是setOnItemClickListener用来触发布尔标志.问题是在布尔标志设置为true后,他们仍然可以编辑项目的选定文本.我需要检测到这一点并再次将布尔标志设置为false.我该怎么做呢.我已经看到了使用的建议onKeyDown,但我不确定如何实现这一点.
android list onkeydown autocompletetextview onitemclicklistener
我已经尝试了很多,但是AutoCompleteTextView使用TextInputLayoutfrom支持无法使工作成为浮动提示.
有可能或者我需要使用外部库吗?
android autocompletetextview android-support-library material-design android-textinputlayout
有没有办法强制autocompletetextview中的条目成为条目列表中的元素之一?
我找到了一个名为"performValidation"的方法,但我不确定它实际上做了什么,而且我还没有找到很多文档或任何示例.
我正在从a中检索字符串列表,webservice我想在AutoCompleteTextField不管内置AutoCompleteTextField过滤器的情况下列出它们.
我怎么做?有没有办法很容易地禁用它的内部过滤(最好没有子类)我已经将所有结果加载到a中ArrayAdapter,问题是它们中的一些因为过滤而没有显示出来.
如果我走向错误的方向,请指出正确的方向.
java android filter autocompletetextview android-arrayadapter
我想知道如果可以的话,从AutoCompleteTextView选择时自定义下拉列表的颜色.我可以自定义其他所有内容,但不能选择所选颜色,即 - 它保持不变.
在Activity:
ArrayAdapter<String> adap = new ArrayAdapter<String>(this, R.layout.row, strings);
autoNewBird = (AutoCompleteTextView)findViewById(R.id.autoCompleteBirdName);
autoNewBird.setAdapter(adap);
Run Code Online (Sandbox Code Playgroud)
row.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/birdtext"
android:padding="5dip"
android:background="@drawable/custom_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/spinner_item"
android:gravity="center_vertical"
android:layout_gravity="center_vertical" android:lines="1"/>
Run Code Online (Sandbox Code Playgroud)
和drawable custom_spinner.xml(在drawable文件夹中)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/listback" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/listback" />
<item android:state_pressed="true" android:drawable="@drawable/threebythree" />
<item android:state_enabled="true" android:state_focused="true"
android:drawable="@drawable/threebythree" />
<item android:state_enabled="true" android:drawable="@drawable/listback" />
<item android:state_focused="true" android:drawable="@drawable/listback" />
<item android:drawable="@drawable/listback" />
</selector>
Run Code Online (Sandbox Code Playgroud)
这适用于微调器下拉列表,但对于AutoCompleteTextView选中,它不会像微调器下拉列表那样改变颜色.
任何帮助,或经验与此将不胜感激.
我有一个AutoCompleteTextView,它通常在用户输入3个字母后提供建议.一旦我触摸建议列表隐藏软键盘,我想要一次.我在下面使用表格布局所做的只有在点击建议列表时才会隐藏键盘.
XML
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<AutoCompleteTextView
android:id="@+id/auto_insert_meds"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="15"
android:inputType="textVisiblePassword|textMultiLine"
android:scrollHorizontally="false"
android:text=""
android:textSize="16sp" />
</TableRow>
Run Code Online (Sandbox Code Playgroud)
Java的
TableLayout tbl = (TableLayout) findViewById(R.id.main_table);
tbl.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(v.getWindowToken(), 0);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
用于自定义列表的XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/medlist_linear_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/med_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollHorizontally="false"
android:padding="3dp"
android:textColor="@android:color/white" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我问自己是否有可能将a Spinner和a 结合起来AutoCompleteTextView.基本上我想要一个AutoCompleteTextView,它显示Array我点击它时的所有条目.
有谁知道怎么做?
我一直在尝试删除SearchView中的蓝色焦点线.我将它投射到AutoCompleteTextView,以便我可以为searchView使用自定义图标.
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
searchtextView = (AutoCompleteTextView) searchView.findViewById(id);
Run Code Online (Sandbox Code Playgroud)
我试过用
searchtextView.setBackGroundColor(0)
Run Code Online (Sandbox Code Playgroud)
并在我的xml中手动将背景设置为#0000000,但我仍然可以看到底部的蓝线.
我面临的第二个问题是光标最初没有显示在文本上.我想在searchview中没有输入任何内容时显示光标.我试图通过编程方式进行操作
if (searchtextView.getText().toString().length() >= 0) {
searchtextView.setSelection(searchtextView.getText().toString().length());
}
Run Code Online (Sandbox Code Playgroud)
即使在searchView内部没有文本也应该显示光标.我认为它与焦点有关,因为当我输入2-3个字符时,光标会自动显示.
android focus autocompletetextview searchview android-background
android ×10
autocomplete ×1
contacts ×1
cursor ×1
filter ×1
focus ×1
java ×1
list ×1
onkeydown ×1
searchview ×1
validation ×1