【发布时间】:2020-09-11 07:06:11
【问题描述】:
我正在构建一个从 sqlite db 中搜索字符串并在 recyclerview 中显示结果的 Android 应用程序。
我发现构建此应用程序的问题是,当我键入 f.e 包含字母“a”的字符串时,它会将包含该字母的行数显示为空白项。有人可以帮忙吗?
MainActivity.java
public void fetchContactOffline(String flcode) {
ArrayList<QueryResult> list = new ArrayList();
if (flcode.length() > 0) {
StringBuilder query = new StringBuilder("select * from ").append(TABLE_NAME).append(" where ");
query.append(TABLE_COLUMN_FLCODE).append(" like \"%").append(flcode).append("%\"");
SQLiteOpenHelper database = new RichDB(this);
SQLiteDatabase db = database.getReadableDatabase();
Cursor cursor = db.rawQuery(query.toString(), null);
if (cursor.moveToFirst()) {
do {
QueryResult queryResult = new QueryResult();
queryResult.answer = cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_ANSWER));
queryResult.question = cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_QUESTION));
list.add(queryResult);
} while (cursor.moveToNext());
}
db.close();
}
progressBar.setVisibility(GONE);
adapter = new Adapter(list);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
**适配器.java** ```
private ArrayList<QueryResult> questions;
public Adapter(ArrayList<QueryResult> questions) {
this.questions = questions;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.items, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.reponse.setText(questions.get(position).getAnswer());
holder.reponse.setTextColor(Color.BLACK);
holder.question.setText(questions.get(position).getQuestion());
holder.question.setTextColor(Color.BLUE);
}
@Override
public int getItemCount() {
return questions.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
TextView reponse,question;
public MyViewHolder(View itemView) {
super(itemView);
reponse = itemView.findViewById(R.id.AnswerItem);
question = itemView.findViewById(R.id.QuestionItem);
}
}
<br>
**items.xml**
<br>
<TextView
android:paddingTop="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:textSize="20sp"
android:textColor="#111"
android:id="@+id/AnswerItem"
android:text="Answer"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/QuestionItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:paddingTop="5dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="Question" />
<View
android:background="#bfbfbf"
android:layout_width="match_parent"
android:layout_height="0.1dp"/>
```
**截屏**[截图 - 1][1]
【问题讨论】:
-
你也可以提供你的布局xml吗?
-
显示此类
QueryResult。
标签: java android sqlite android-recyclerview