java - 在 Android 中使用 autocompleteTextView 时如何获取返回特定字符串?

标签 java android autocompletetextview

    public class MainActivity extends Activity {

    // List view
    private AutoCompleteTextView lv;

    // Listview Adapter
    ArrayAdapter<String> adapter;



    // ArrayList for Listview
    ArrayList<User> userList = new ArrayList<User>();
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Listview Data
       /* String products[] = {"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE",
                                "iPhone 4S", "Samsung Galaxy Note 800",
                                "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"};*/
        User p = null;

        p = new User("1", "Starhub Pte Ltd","Manager","Jason", "Bourne","");
        userList.add(p);      
        p = new User("2", "Singtel Pte Ltd", "Senior Manager","Ben", "Chia","");
        userList.add(p);  
        p = new User("3", "Ngee Ann Polytechnic", "Senior lecturer","Charles", "Xavier","");
        userList.add(p); 
        p = new User("4", "Dreamcity Pte Ltd", "","Ben", "Chia","");
        userList.add(p); 
        p = new User("5", "DBS Corporation", "Secretary","Michelle", "Chong","");
        userList.add(p); 
        p = new User("6", "OCBC bank", "Deputy finance Manager","YongZheng", "Wong","");
        userList.add(p); 

        AutoCompleteTextView lv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView); // NOTE: change to your autocomplete textview id

        // Adding items to listview

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, getUsernames(userList));
        lv.setAdapter(adapter);  



    }

    private ArrayList<String> getUsernames(ArrayList<User> users)
    {
        ArrayList<String> usernames = new ArrayList<String>();


        for(User u : users)

        {
            usernames.add(u.getFirstName() +" "+ u.getLastName() +" "+ u.getCompanyName()); 

        }

        return usernames;
    }
}

假设我想搜索“Starhub”,我不希望公司名称出现在搜索结果中。

当我输入“S”时,Jason Bourne 将出现在我的建议中,而不是“Jason bourne Starhub”

到目前为止,我可以完成名字和姓氏,但我不希望出现公司名称,我该如何改进?请帮忙。

最佳答案

您需要进行自己的定制ArrayAdapter<String>它将仅向 AutoCompleteTextView 提供您想要的信息。您可以将其作为当前文件中的内部类来执行此操作,也可以在其自己的外部文件中编写一个内部类。有关 ArrayAdapters 的文档将是您开始查找有关如何扩展此类并提供您正在寻找的功能的信息的好地方。看看here .

关于java - 在 Android 中使用 autocompleteTextView 时如何获取返回特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20817187/

相关文章:

java - 检查表单是否有空值

java - 用什么数学理论来解决这个问题?

android - 我们可以从 Eclipse 导入一个 Android 项目到 Android Studio 吗?它支持 SVN 吗?

java - Firestore-检查用户名是否已存在

看起来像 : public static <F extends Field<F>> DenseVector<F> valueOf(F. .. 元素的 Java 方法)...它们是什么?

java - 何时在 ExecutorCompletionService 中使用 poll() 与 take()

android - 如何在Phonegap中设置android权限

android - Autocompletetextview返回参数指定为非null为null

Android AutoCompleteTextView 显示选中的

java - 为什么我的带有 AutoCompleteTextView 的应用程序崩溃了