【问题标题】:Cursor in Android not Returning Rows/DataAndroid中的光标不返回行/数据
【发布时间】:2015-04-15 14:51:42
【问题描述】:

我是 android 编程新手。你能帮我用游标获取行吗?

使用此代码,我可以获取所有行:

public Cursor getAllDataDays() {
    SQLiteDatabase db = this.getWritableDatabase();
    String selectQuery = "SELECT * FROM " + TABLE_MYBUDGETWITHDAYS;
    return db.rawQuery(selectQuery, null);
    }

这是我获取特定行的代码:

public Cursor SelectAllDaysIntParent(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    String selectQuery = "SELECT * FROM " + TABLE_MYBUDGETWITHDAYS +  " WHERE" + KEY_PARENTID + " = " + id;
    return db.rawQuery(selectQuery, null);

}

但它没有显示任何行。

请帮忙。谢谢。

Main_BudgetPlannerListViewAdapter.java

package caraga.tripgurufinal.adapter;

import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.TextView;

import com.example.budgetplanner.R;

public class Main_BudgetPlannerListViewAdapter extends CursorAdapter{
@SuppressWarnings("deprecation")
public Main_BudgetPlannerListViewAdapter(Context context, Cursor c) {
    super(context, c);
    // TODO Auto-generated constructor stub
}


@Override
public void bindView(View view, Context context, Cursor cursor) {
    TextView planName = (TextView)view.findViewById(R.id.tv_PlanName);
    TextView planDate = (TextView)view.findViewById(R.id.tv_PlanDate);
    TextView planDays = (TextView)view.findViewById(R.id.tv_NumberOfDays);
    TextView CreatedDateTime = (TextView)view.findViewById(R.id.tv_createdDateTime);

    planDays.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1)))+ " Days");
    planName.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2))));
    planDate.setText("Travel Date: " + cursor.getString(cursor.getColumnIndex(cursor.getColumnName(3))));
    CreatedDateTime.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(4))));

}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    View retView = inflater.inflate(R.layout.mybudgetplann_list, parent, false);
    return retView;
}

注意:我想要一个带有 Cursor 的方法,因为我的 listview 自定义适配器需要光标。

【问题讨论】:

  • 哪里没有显示任何行。也贴出相关代码
  • 你有什么异常吗?如果不是,则没有符合您条件的行。
  • @Ranjith 当我尝试使用第一个代码时,它成功显示所有行。第二行不显示任何内容。
  • @m0skit0 我没有收到任何错误。列表视图只是空的。
  • @AllanDave 发布适配器代码...如果未填写相关位

标签: android sqlite select return android-cursor


【解决方案1】:

尝试更改此设置

planDays.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1)))+ " Days");
planName.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2))));
planDate.setText("Travel Date: " + cursor.getString(cursor.getColumnIndex(cursor.getColumnName(3))));
CreatedDateTime.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(4))));

到这里

planDays.setText(cursor.getString(0)+ " Days");
planName.setText(cursor.getString(1));
planDate.setText("Travel Date: " + cursor.getString(2));
CreatedDateTime.setText(cursor.getString(3));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多