- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用内容解析器从 UserDictionary.words 内容提供程序获取数据时遇到问题。
这是我的要求:1. 我想找出与给定单词匹配的 UserDictionary 单词。
我的实现;1.我的应用有两个屏幕( Activity )2. 我在第一个屏幕上输入一个词并将其作为 Intent 传递给第二个屏幕。在第二个屏幕上,我想显示与第一个屏幕上给定单词匹配的 Userdictionary 单词列表。
我的问题是...我能够将单词传递给第二个 Activity ,但错过了检索 userDicitnary 记录的机会。我给它的任何词都是返回记录。这是我的两个 Activity 的代码。请帮我解决这个问题。
第一个 Activity :
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG,"onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content_user_demo);
}
public void SendWord(View view){
Log.d(TAG,"SendWord");
EditText SearchWord = (EditText) findViewById(R.id.mSearchWord);
String mSearchString = SearchWord.getText().toString();
Intent intent = new Intent(this, WordListActivity.class);
Log.d(TAG,"EXTRA_MESSAGE");
intent.putExtra(EXTRA_MESSAGE, mSearchString);
startActivity(intent);
}
第二个 Activity :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
setContentView(R.layout.activity_word_list);
Intent intent = getIntent();
Log.d(TAG,"getIntent() EXTRA_MESSAGE");
String searchWord = intent.getStringExtra(ContentUserDemo.EXTRA_MESSAGE);
textView = new TextView(this);
Log.d(TAG,"searchWord " +searchWord);
textView.setTextSize(20);
setContentView(textView);
Log.d(TAG,"textSize " +textView.length());
String[] mProjection =
{
UserDictionary.Words._ID,
UserDictionary.Words.WORD,
UserDictionary.Words.LOCALE
};
String mSelectionClause = null;
String[] mSelectionArgs = {""};
String mSortOrder=null;
ContentResolver cr = getContentResolver();
if (TextUtils.isEmpty(searchWord)) {
mSelectionClause = null;
mSelectionArgs[0] = "";
}
else {
mSelectionClause = UserDictionary.Words.WORD + " = ?";
mSelectionArgs[0] = searchWord;
}
Cursor mCursor = cr.query(UserDictionary.Words.CONTENT_URI,
mProjection,
mSelectionClause,
mSelectionArgs,
mSortOrder);
startManagingCursor(mCursor);
int count = mCursor.getCount();
if (null == mCursor) {
Log.d(TAG, "cursor.getCount()=" + count);
String message="No word matches with "+ searchWord;
textView.setText(message);
}
else if (mCursor.getCount() < 1) {
Log.d(TAG, "cursor.getCount()=" + count);
String message="getCount is less than 1 " + "No word matches with "+ searchWord;
textView.setText(message);
}
else {
String message="Else part of the code";
textView.setText(message);
String[] mWordListColumns ={UserDictionary.Words.WORD,UserDictionary.Words.LOCALE};
int[] mWordListItems = { R.id.dictWord, R.id.locale};
SimpleCursorAdapter mCursorAdapter = new SimpleCursorAdapter(
getApplicationContext(),
R.layout.wordlistrow,
mCursor,
mWordListColumns,
mWordListItems,
0);
ListView mWordList = (ListView) findViewById(R.id.mWordList);
mWordList.setAdapter(mCursorAdapter);
}
}
最佳答案
在 TextUtils.isEmpty() {}
子句中,我建议更改:
mSelectionArgs[0] = "";
到mSelectionArgs = null;
因为可能存在非法参数异常:
java.lang.IllegalArgumentException:
Cannot bind argument at index 1 because the index is out of range.
The statement has 0 parameters.
关于android - 如何从 userdictionary content provider 检索单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338943/
我希望应用向 UserDictionary 添加几个 (2k) 个单词。 我试验过 ContentResolver().insert/bulk insert.... // array of words
与 UserDictionary.Words和 WRITE_USER_DICTIONARY允许将单词添加到用户词典中,但我看不到任何方法来删除单词。 这种情况下的动机是添加应用程序本地的自动完成提示,
我想在我的安卓手机 (Moto Droid) 中添加一个完整的医学词典。我希望能够发送短信并让医学词汇出现在可预测的文本中。 我一直在尝试编写一个可以完成此任务的小应用程序,但我尝试的所有应用程序都会
我在使用内容解析器从 UserDictionary.words 内容提供程序获取数据时遇到问题。 这是我的要求:1. 我想找出与给定单词匹配的 UserDictionary 单词。 我的实现;1.我的
我似乎找不到任何好的示例代码来说明如何在给定单词的情况下查询 UserDictionary 内容提供程序。我的查询看起来像: Cursor cur = getContentResolver().que
我已经在 iOS 应用程序上工作了一段时间,突然之间,每次在 iOS 5.1 模拟器中运行该应用程序时,我都会遇到以下崩溃。 该应用程序不使用核心数据,我不确定是什么原因导致的。 我已从模拟器中删除该
我正在开发一个 android 应用程序,旨在在屏幕上显示一个列表,其中包含用户词典中的内容。 问题是,当我在 Android API Level 23 Content Provider 中编译和运行
我是一名优秀的程序员,十分优秀!