首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将word添加到用户字典,并从字典中检索它们。

将word添加到用户字典,并从字典中检索它们。
EN

Stack Overflow用户
提问于 2013-08-08 09:23:58
回答 1查看 3K关注 0票数 2

在我的应用程序中,很少有用户输入公司名称、客户名称、purpose....kinds的编辑。现在,我想以编程的方式将这些单词添加到字典中,这样它们就不必每次都重新输入整个单词,相反,一旦它们开始键入,字典就应该建议使用这个单词。

我在网上搜索了同样的信息

代码语言:javascript
运行
复制
UserDictionary.Words.addWord(getActivity(), et_client_name.getText().toString(), 1, "", locale);

我们需要给这个应用程序两个权限:

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>
<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>

但是我的问题是:一旦我使用上面的语句添加单词,如何从字典中检索它,并在用户开始输入时建议用户。

任何帮助或参考任何好的教程,我们将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-21 05:02:57

我设法通过我的own....answering找到了我的问题的解决方案--这个问题--希望它能帮助别人为同样的问题提供参考:

代码语言:javascript
运行
复制
public class HomeActivity extends Fragment implements TextWatcher {

    String itemClientName[] = {};
    ArrayAdapter<String> clientNameAdapter;
    ArrayList<String> clientNameList = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AutoCompleteTextView et_client_name = (AutoCompleteTextView) findViewById(R.id.et_client_name);
        getFromDictionary();
        suggestClientName();
        et_client_name.addTextChangedListener(this);
    }

    public void getFromDictionary() {
        System.out.println("Inside getFromDictionary");
        ContentResolver resolver = getActivity().getContentResolver();
        String[] projection = new String[]{BaseColumns._ID, UserDictionary.Words.WORD};
        cursor = resolver.query(UserDictionary.Words.CONTENT_URI, projection, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                long id = Integer.parseInt(cursor.getString(0));
                word = cursor.getString(1);
                // Prepare list for autoCompletion
                System.out.println("Inside prepareMyList" + word);
                if (!clientNameList.contains(word))
                    clientNameList.add(word);
                System.out.println("clientNameList::" + clientNameList);
                System.out.println("Word from dictionary is::" + word);
                // do something meaningful
            } while (cursor.moveToNext());
        }
    }

    public void suggestClientName() {
        String newAdd1 = et_client_name.getText().toString();
        if (!clientNameList.contains(newAdd1)) {
            clientNameList.add(newAdd1);
            // update the autocomplete words
            clientNameAdapter = new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_dropdown_item_1line, clientNameList);
            et_client_name.setAdapter(clientNameAdapter);
        }
        // display the words in myList for your reference
        String s = "";
        for (int i = 0; i < clientNameList.size(); i++) {
            s += clientNameList.get(i) + "\n";
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18122372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档