Android ListView+;SimpleCursorAdapter不';t显示数据
好的,我知道这个问题在这里被问了很多次,我尝试了所有的解决方案,但没有一个有效。我正在学习android书籍,我正在尝试使用SimpleCursorAdapter将数据库中的数据以ListView的形式显示出来。应该显示数据的屏幕除了标题之外什么都不显示Android ListView+;SimpleCursorAdapter不';t显示数据,android,android-listview,simplecursoradapter,Android,Android Listview,Simplecursoradapter,好的,我知道这个问题在这里被问了很多次,我尝试了所有的解决方案,但没有一个有效。我正在学习android书籍,我正在尝试使用SimpleCursorAdapter将数据库中的数据以ListView的形式显示出来。应该显示数据的屏幕除了标题之外什么都不显示 package com.example.yamba; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import
package com.example.yamba;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class TimelineActivity extends Activity {
static final String[] FROM = { StatusData.C_USER,StatusData.C_TEXT, StatusData.C_CREATED_AT};
static final int[]TO = {R.id.text_user,R.id.text_text,R.id.text_createdAt};
ListView list;
Cursor cursor;
SimpleCursorAdapter adapter;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timeline);
list = (ListView) findViewById(R.id.list);
adapter = new SimpleCursorAdapter(this, R.layout.row, cursor, FROM, TO);
list.setAdapter(adapter);
cursor = ((YambaApp) getApplication()).statusData.query();
// while (cursor.moveToNext()) {
// String user = cursor.getString(cursor.getColumnIndex(StatusData.C_USER));
// String text = cursor.getString(cursor.getColumnIndex(StatusData.C_TEXT));
// list.append(String.format("\n%s: %s", user, text));
// }
}
}
***Timeline.xml***
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/my_blue"
android:orientation="vertical" >
<TextView
android:id="@+id/timeline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/Timeline" />
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
<!--
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/timelineView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ScrollView>
-->
</LinearLayout>
***row.xml***
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text_user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Slashdot"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/text_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/text_createdAt"
android:text="A really long example tweet for just test purposes"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/text_createdAt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/text_user"
android:layout_alignBottom="@+id/text_user"
android:layout_alignParentRight="true"
android:text="10 minutes ago"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
package com.example.yamba;
导入android.app.Activity;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.widget.ListView;
导入android.widget.SimpleCursorAdapter;
公共类TimelineActivity扩展活动{
静态最终字符串[]FROM={StatusData.C_USER,StatusData.C_TEXT,StatusData.C_CREATED_AT};
静态final int[]TO={R.id.text_user,R.id.text_text,R.id.text_createdAt};
列表视图列表;
光标;
SimpleCursorAdapter适配器;
@抑制警告(“弃用”)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.timeline);
list=(ListView)findViewById(R.id.list);
adapter=new SimpleCursorAdapter(this,R.layout.row,cursor,FROM,TO);
list.setAdapter(适配器);
游标=((YambaApp)getApplication()).statusData.query();
//while(cursor.moveToNext()){
//String user=cursor.getString(cursor.getColumnIndex(StatusData.C_user));
//String text=cursor.getString(cursor.getColumnIndex(StatusData.C_text));
//list.append(String.format(“\n%s:%s”,用户,文本));
// }
}
}
***Timeline.xml***
***row.xml***
我已经在上面粘贴了我的代码。有人能告诉我是什么把显示屏弄乱了吗?非常感谢你的帮助
谢谢 在创建SimpleCursorAdapter之前需要创建游标,否则将向构造函数传递什么。这里有一个重写:
super.onCreate(savedInstanceState);
setContentView(R.layout.timeline);
list = (ListView) findViewById(R.id.list);
cursor = ((YambaApp) getApplication()).statusData.query();
adapter = new SimpleCursorAdapter(this, R.layout.row, cursor, FROM, TO);
list.setAdapter(adapter);
哦,哇。这让它起作用了。非常感谢莱昂内尔·波特。我花了将近一个小时试着调试它。!!没问题,有时候需要一双新鲜的眼睛。