标签: autocompletetextview

Android AutoCompleteTextView以横向模式显示对象信息而不是文本

我正在使用自定义适配器与AutoCompleteTextView.它在模拟器和我的平板电脑上工作正常.但是,我的手机在横向模式下出现问题.在此模式下显示的自动完成提示是对象信息而不是文本.但是,当我选择任何项目时,字段会在相应字段中正确填充文本.

基于Android Stock Array Adapter的其他字段的自动完成工作正常.

我必须在自定义适配器中为此做些什么吗?我在SO上只看到了一个类似的问题.对该问题的一个回答是讨论覆盖toString方法,但我无法理解它在我的代码中实现.

任何指导将不胜感激?如果您需要更多信息,请与我们联系.

编辑:添加了我的自定义适配器源代码....

  public class Part_Mstr_Info
  {
    private long part_id;
    private String name, desg, org, dept;

    public Part_Mstr_Info(long part_id, String name, String desg, String org, String dept)
    {
        this.part_id = part_id;
        this.name = name;
        this.desg = desg;
        this.org = org;
        this.dept = dept;
    }
    public long get_part_id() { return part_id; }
    public String get_name() { return name; }
    public String get_desg() { return desg; }
    public String get_org() { return org; }
    public String get_dept() …
Run Code Online (Sandbox Code Playgroud)

android hints autocompletetextview custom-adapter

11
推荐指数
2
解决办法
6193
查看次数

AutoCompleteTextView下拉高度限制在对话框弹出窗口中

对话框弹出窗口位于此处.

自动完成结果如何停在弹出视图的到底是在这里.

我希望结果从对话框的视图下拉到父视图.如果我不能这样做,那么我想限制AutoComplete给我两个结果的数量.

这是我弹出菜单的单击监听器.

addDialog.setContentView(R.layout.shoppinglistadd);

/**Capture the AutoCompleteTextView widget*/
final AutoCompleteTextView autoCompleteTV 
  = (AutoCompleteTextView) addDialog.findViewById(R.id.productEnteredShop);
/**Fills the autocomplete with possibilities*/
String[] acArray = getResources().getStringArray(R.array.completeFoodsList);
/**Create a new ArrayAdapter and bind shoppinglistitem.xml to each list item*/
ArrayAdapter<String> autoCompleteAdapter 
  = new ArrayAdapter<String>(ShoppingList.this, R.layout.shoppinglistitem, acArray);
/**Associate the adapter with textView*/
autoCompleteTV.setAdapter(autoCompleteAdapter);
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview

11
推荐指数
2
解决办法
6614
查看次数

在Android中扩展过滤器时如何使用publishResults()方法?

我正在开发一个自动完成文本视图,它可以在一个关键值系统上工作,我正在尝试找出我需要做什么来使publishResults工作,因为调试器中传递给publishResults的结果参数在这里是正确的,但是我不知道它应该对应什么或如何使它显示结果,任何人都可以帮忙吗?此对象的创建位于另一个文件中,如下所示:

autoCompleteBox.setAdapter(new AutoCmpAdapter(this, android.R.layout.simple_dropdown_item_1line));
Run Code Online (Sandbox Code Playgroud)

其余的代码如下:

public class AutoCmpAdapter extends ArrayAdapter<String> implements Filterable {

    protected Filter filter;
    protected ArrayList<String> items;
    protected ArrayList<String> res;
    String lWds[] = { "HOMER", "TOM" };
    String sWds[] = { "SIMPSON", "JONES" };

    public AutoCmpAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
        filter = new PhysFilter();
        res = new ArrayList<String>();
    }

    public Filter getFilter() {
        return filter;
    }

    private class PhysFilter extends Filter {

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults f = new FilterResults();
            res.clear();
            if (constraint …
Run Code Online (Sandbox Code Playgroud)

android filter autocompletetextview

10
推荐指数
1
解决办法
1万
查看次数

AutoCompleteTextView强制显示所有项目

在我的应用程序中有一个时刻,我需要强制显示建议列表中的所有项目,无论用户输入了什么.我怎样才能做到这一点?

我试图用过滤做一些事情,但对于我来说,初学者过滤太复杂了,我尝试搜索初学者教程进行过滤而没有任何运气.也许,有一种更简单的方法可以强制显示所有建议项目?

编辑:基本上我的想法是,当用户键入不在列表中的内容时,它会显示他可以拥有的所有可用选项.

我已经找到了检查天气的最佳方式,ACTV是否显示,但onTextChangeEvent我将用户输入的文本与我的列表进行比较,然后如果没有找到任何元素显示完整列表.

public void onTextChanged(CharSequence s, int start, int before, int count)
         {                
           final EditText editText = (EditText) findViewById(R.id.vardsUserInput);
            String strValue = editText.getText().toString().toUpperCase();
            String temp;
            int Cc=0; //my count variable
            for(int i=0; i<vardi.length; i++)
            {
                temp = vardi[i].toUpperCase();
                if(temp.startsWith(strValue.toUpperCase()))
                {
                    Log.d("testing",vardi[i]);
                    Cc++;                                                   
                }
            }               
        if(Cc == 0)
        {
        //Show all the available options
    textView.showDropDown();                    
         }                  
}
Run Code Online (Sandbox Code Playgroud)

java android autocompletetextview

10
推荐指数
4
解决办法
2万
查看次数

performFiltering上的约束在第一个字符上返回null

我为AutoCompleteTextView编写了一个自定义Filter.它工作正常,但一件小事.performFiltering上的Constraint在第一个字符上为null.这意味着只有在将第二个字符放入AutoCompleteTextView时才会启动过滤进程.

这是Filter的代码:

private Filter nameFilter = new Filter() {
    public String convertResultToString(Object resultValue) {
        String fullName = ((User)(resultValue)).facebookName; 
        return fullName;
    }

    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        if(constraint != null) {
            suggestions.clear();
            for (User friend : allFriends) {
                if(friend.facebookName.toLowerCase().contains(constraint.toString().toLowerCase())){
                    suggestions.add(friend);
                }
            }
            FilterResults filterResults = new FilterResults();
            filterResults.values = suggestions;
            filterResults.count = suggestions.size();
            return filterResults;
        } else {
            return new FilterResults();
        }
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        ArrayList<User> filteredList = (ArrayList<User>) results.values;
        if(results != null && …
Run Code Online (Sandbox Code Playgroud)

android filter autocompletetextview

10
推荐指数
1
解决办法
4934
查看次数

从AutoCompleteTextView下拉列表中删除阴影

我正在尝试创建一个全宽度自动完整文本字段.

到目前为止,我认为我的文本字段本身看起来正确.问题在于自动完成弹出窗口.它周围有这个非常大胆的阴影,我无法摆脱它.
不要误解我,我仍然想要阴影,但是一个微妙的阴影,只在弹出窗口的底部,而不是周围的所有(特别是不在顶部,这真的很奇怪).

像这样的东西: 这就是我要的.

这是我的样子(抱歉巨像): 到目前为止我有什么


代码

activity_main.xml中:

<AutoCompleteTextView
    android:id="@+id/actvSearch"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="8dp"
    android:background="@drawable/full_width_input"
    android:completionThreshold="1"
    android:hint="Search a movie..."
    android:textColorHint="#BDBDBD"
    android:elevation="0dp"
    android:popupBackground="@android:color/white" />
Run Code Online (Sandbox Code Playgroud)

full_width_input.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="-1dp" android:right="-1dp" android:left="-1dp">
        <shape android:shape="rectangle">
            <padding android:bottom="20dp" android:top="20dp" android:left="16dp" android:right="16dp" />
            <solid android:color="@android:color/white" />
            <stroke android:width="1dp" android:color="#E0E0E0" />
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

xml android autocompletetextview material-design

10
推荐指数
4
解决办法
4181
查看次数

如何为AutoCompleteTextView创建自定义BaseAdapter

我一直在为AutoCompleteTextView创建自定义ArrayAdapter时遇到困难,尽管在互联网上找到以下代码,但仍会出现这样的错误:

  • 下拉列表不会出现.
  • 自定义对象及其详细信息不会出现.

因此,对于那些遇到或遇到与我相同问题的人,我建议使用BaseAdapter代替AutoCompleteTextView.

android autocompletetextview android-arrayadapter baseadapter

10
推荐指数
2
解决办法
2万
查看次数

Android AutoCompleteTextView onItemSelectedListener未使用蓝牙键盘触发

我有一个简单的应用程序,只包含一个AutoCompleteTextView(下面的代码).我有OnItemClickListenerOnItemSelectedListener定义.单击下拉建议中的各个项目会触发该onItemClick事件.但是,使用蓝牙键盘时,使用箭头键导航到给定项目似乎不会触发onItemSelected事件(此事件不会显示日志).

什么触发了这个onItemSelected事件?我的印象是highlight,其中一个下拉项目就是这样,但情况似乎并非如此.

如果OnItemSelectedListener不是突出显示项目的正确事件侦听器,是否满足此要求?

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:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class MainActivity extends Activity {

    String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"};

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

        // An adapter object
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, options);

        AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
        autoCompleteTextView.setAdapter(adapter);
        autoCompleteTextView.setThreshold(1);

        // Set …
Run Code Online (Sandbox Code Playgroud)

android accessibility autocompletetextview

10
推荐指数
1
解决办法
550
查看次数

丢失焦点时出现AutoCompleteTextView问题

我的活动中有一个AutoCompleteTextView,它可以执行它的运行方式.下拉弓显示正确的条目等.问题是当视图失去焦点时,文本不再可见.当再次获得焦点时,文本是可见的.

有没有其他人有这个问题?这是一个错误或我做错了什么?

android autocompletetextview

9
推荐指数
1
解决办法
1811
查看次数

如何在android中使用自动完成功能将材料设计芯片添加到输入字段?

我正在尝试使用 AutoCompleteTextView 实现 Material Design Chips,以便在用户单击自动完成建议(如 Gmail 收件人芯片)时在输入字段中添加联系人芯片。

可以在Material Design 网站上看到所需的行为。

我决定从头开始在我的项目中与 AutoCompleteTextView 一起实现 Chips,没有外部库。但是,我没有找到任何说明如何做到这一点的指南。

我尝试创建一个独立的 ChipDrawable,然后将其添加到 AutoCompleteTextView 中,如下所示:

布局

<chip
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:chipIcon="@drawable/ic_avatar_circle_24"
    android:text="@string/contact_name"/>
Run Code Online (Sandbox Code Playgroud)

Java代码

ChipDrawable chip = ChipDrawable.createFromResource(getContext(), R.xml.standalone_chip);

chip.setBounds(0, 0, chip.getIntrinsicWidth(), chip.getIntrinsicHeight());
DrawableMarginSpan span = new DrawableMarginSpan(chip, 25);

Editable text = editText.getText();
text.setSpan(span, 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有按预期工作。首先,我不能添加更多的芯片。此外,芯片的样式非常奇怪(高度太大,未居中)。

那么如何使用 Material Design Input Chips 创建 Gmail 或 SMS 应用程序中的 Contact Chips 呢?也许有人知道一些实施指南?

提前致谢,您的帮助将不胜感激!

android autocompletetextview material-design android-chips material-components

9
推荐指数
1
解决办法
3099
查看次数