gpt4 book ai didi

android - CursorAdapter 不在 ListView 中显示任何数据

转载 作者:太空狗 更新时间:2023-10-29 15:09:46 25 4
gpt4 key购买 nike

这是我的 Activity 代码。我刚开始学习android。而且我无法通过 ListView 上的 SimpleCursorAdaptor 获取任何数据当我使用 ArrayAdaptor 时,我可以在 ListView 上获取数据,但不能使用简单的游标适配器

public class LaunchActivity extends Activity {
ListView taskList;
SQLiteDatabase db ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch);

// Log.d("Anuranjit", "IN activity");
taskList = (ListView) findViewById(R.id.TaskList);
taskList.setDividerHeight(7);

TaskDatabaseManager taskManager = new TaskDatabaseManager(
getApplicationContext());
db = taskManager.getWritableDatabase();
addData();
Cursor c=db.rawQuery("Select * from "+TaskDatabaseManager.DATABASE_TABLE, null);
c.moveToFirst();
String[] fromCol={TaskDatabaseManager.KEY_ROWID,TaskDatabaseManager.TASK_DESCRIPTION,TaskDatabaseManager.TASK_STATUS,TaskDatabaseManager.TASK_TIMESTAMP};
int[] v={R.id.TaskList,R.id.TaskList,R.id.TaskList,R.id.TaskList};
SimpleCursorAdapter sa=new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1 ,c,fromCol,v,0);

taskList.setAdapter(sa);
}

public void addData(){
Date c=new Date();
db.execSQL("insert into "+TaskDatabaseManager.DATABASE_TABLE+"( "+TaskDatabaseManager.TASK_DESCRIPTION+","+TaskDatabaseManager.TASK_TIMESTAMP +","+TaskDatabaseManager.TASK_STATUS+") values ('Hello World',' "+(new Timestamp(c.getTime()))+" ' ,'0');");
Cursor ac=db.rawQuery("Select * from "+TaskDatabaseManager.DATABASE_TABLE, null);
ac.moveToFirst();
Toast.makeText(getApplicationContext(), String.valueOf(ac.getCount()), Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), ac.getString(1), Toast.LENGTH_LONG).show();
}

启动器 Activity 布局。我在 XML 中只有一个 ListView ,这是问题所在吗?

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LaunchActivity" >

<ListView
android:id="@+id/TaskList"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:divider="@android:color/holo_green_light" >
</ListView>

最佳答案

这一行是你的问题。

 int[] v={R.id.TaskList,R.id.TaskList,R.id.TaskList,R.id.TaskList};

您必须将光标中的值映射到列表项布局中的文本字段。不在包含 ListView 的布局中。

Atm 你正在为你的列表项使用通用布局 (android.R.layout.simple_list_item_1)尝试自己制作。 (简单的 xml 布局包含 1 个 TextView 用于您要显示的每个值)然后:

SimpleCursorAdapter sa=new SimpleCursorAdapter(this,R.layout.my_list_item ,c,fromCol,v,0);

int[] v={R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView4};

关于android - CursorAdapter 不在 ListView 中显示任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com