sqlite游标的空列表视图

时间:2011-12-08 13:09:51

标签: android sqlite listview simplecursoradapter

我有一个带有5条记录的sqlite,我想用这个bbdd中的光标填充列表视图,但只创建一个带有白色地方的列表视图,bddd查询结果的任何地方,没有内容。我认为是textview颜色,但没有。任何人都可以帮助我?

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);   
    setContentView(R.layout.listatab);

     //Creamos la instancia de DataBaseHelper, un cursor y aplicamos el metodo getNombres al cursor.
     ayudabbdd = new DataBaseHelper(this);
     Cursor nombresC;     
     nombresC = (Cursor) ayudabbdd.getNombres();  
     nombresC.moveToFirst();
     startManagingCursor(nombresC);
     String[] datosRecibidos = new String[] {"nombre"};
    int[] layoutDondeLoPongo = new int[] { R.layout.entrada_lista};

     //Mientras el cursor no este vacio rellenamos la lista con el adaptador, que nos sirve para conectar unos datos con el listview.
     if(nombresC!=null){
         SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.listatab, nombresC,datosRecibidos, layoutDondeLoPongo); 
         this.setListAdapter(adapter);
     this.getListView();  
     }

Listatab.xml

    android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ListView
    android:id="@android:id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

和entradalista.xml

android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
<TextView
    android:id="@+id/nombre"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="28dip"
    android:textColor="#000000"/>

3 个答案:

答案 0 :(得分:0)

试试这个,

修改::

super.onCreate(savedInstanceState);   
setContentView(R.layout.listatab);

 //Creamos la instancia de DataBaseHelper, un cursor y aplicamos el metodo getNombres al cursor.
  ayudabbdd = new DataBaseHelper(this);
  Cursor nombresC;     
  nombresC = (Cursor) ayudabbdd.getNombres();  
  nombresC.moveToFirst();
  startManagingCursor(nombresC);
  getListView(); 
 ListAdapter adapter = new SimpleCursorAdapter(this,R.layout.listatab,nombresC,        
  new String[] {"nombre"},   
  new int[] { R.id.nombre}); 
  setListAdapter(adapter);

答案 1 :(得分:0)

改变这个:

int[] layoutDondeLoPongo = new int[] { R.layout.entrada_lista};
String[] datosRecibidos = new String[] {"nombre"};

为:

int[] layoutDondeLoPongo = new int[] { R.id.nombre };
String[] datosRecibidos = new String[] {"son"};

答案 2 :(得分:0)

我找到了解决方案:

listatab.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
<ListView  
     android:id="@android:id/list"
     android:cacheColorHint="#666666"
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     />
</LinearLayout>

entrada_lista.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- row.xml -->
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:paddingTop="4dip"
 android:textAppearance="?android:attr/textAppearanceLarge"
 android:paddingBottom="6dip"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical">

 <LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <TextView android:id="@+id/nombreLugar"
    android:textColor="#4B89E0" 
     android:layout_width="130dip"
     android:layout_height="40dip"
     android:textSize = "15dip"
     />


</LinearLayout>          

</LinearLayout>

和活动

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);   
    setContentView(R.layout.listatab);

   //Creamos la instancia de DataBaseHelper, un cursor y aplicamos el metodo getNombres al cursor.
    ayudabbdd = new DataBaseHelper(this);
    Cursor nombresC;     
    nombresC = (Cursor) ayudabbdd.getNombres();  
    nombresC.moveToFirst();
    startManagingCursor(nombresC);
    String[] from = new String[]{DataBaseHelper.CNOMBRE};
    int[] to = new int[]{R.id.nombreLugar};
    SimpleCursorAdapter lugares = 
        new SimpleCursorAdapter(this, R.layout.entrada_lista, nombresC, from, to);
    setListAdapter(lugares);

  }