如何将数据库中的数据显示为两个Textview

时间:2015-04-28 19:49:47

标签: android sqlite textview

我正在尝试开发一个在数据库中保存点和日期的应用程序,但是,我想在列表中显示绿色点和白色日期。点和时间点在彼此之上。我的代码: 班级数据库     公共类BaseDeDatos扩展了SQLiteOpenHelper {

public BaseDeDatos(Context context) {
    super(context, "puntuaciones", null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE puntuaciones (puntos INTEGER,fecha VARCHAR)");

}
public void save(int points,String date){
     SQLiteDatabase db = getWritableDatabase();
     db.execSQL("INSERT INTO puntuaciones VALUES("+points+","+"'"+date+"')");
     db.close();
}
public Vector<String> listPoints(int cantidad) {
    Vector<String> result = new Vector<String>();
    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT puntos, fecha FROM " +
    "puntuaciones ORDER BY puntos DESC LIMIT " +cantidad, null);
    while (cursor.moveToNext()){
    result.add(cursor.getInt(0)+cursor.getString(1));
    }
    cursor.close();
    db.close();
    return result;
    }

和我的班级列表

ListView lista;
BaseDeDatos bd;
Vector maxRegis;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maximos_registros);
    lista=(ListView)findViewById(R.id.lista);
    lista.setBackgroundColor(color.Aquamarine);
    maxRegis= new Vector();
    bd= new BaseDeDatos(this);
    maxRegis=bd.listaPuntos(10);
    ArrayAdapter adaptador= new ArrayAdapter(this,R.layout.elemento_lista,R.id.tv1,maxRegis);
    //MyAdapter adaptador= new MyAdapter(this,bd);
    lista.setAdapter(adaptador);
}

和R.layout.elemento_lista的代码

<?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="?android:attr/listPreferredItemHeight" >


<TextView
    android:id="@+id/tv1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="40dp"
    android:inputType="textCapCharacters"
    android:textColor="#FFD700"
    android:textStyle="bold"
    android:text="" />

<TextView
    android:id="@+id/tv2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/tv1"
    android:layout_alignParentBottom="true"
    android:textStyle="italic"
    android:text="" />

如果我使一个特殊的适配器显示什么,但与ArrayAdapter显示相同的TextView。

1 个答案:

答案 0 :(得分:0)

您应该使用CustomAdapter extends BaseAdapter 以下是我的示例TodoApp CustomAdapter

您必须在

中充气R.layout.elemento_lista
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null){
        convertView = inflater.inflate(R.layout.elemento_lista, null);
    }
    TextView title = (TextView) convertView.findViewById(R.id.todo_title);
    title.setText(getItem(position));
    return convertView;
}

然后按id,setText找到你的TextView,那就是全部: - )