【问题标题】:What adapter use for listview and database?列表视图和数据库使用什么适配器?
【发布时间】:2014-02-11 21:08:39
【问题描述】:

我是 Android(Java) 编程的新手。 我有一个数据库活动:

public class DataBase {
      public static final String DB_NAME = "appdb";
      public static final int DB_VERSION = 1;
      static final String TABLE_NAME = "passtab";
      final String LOG_TAG = "myLogs";
      public static final String COLUMN_ID = "_id";
      public static final String COLUMN_TITLE = "title_enter";
      public static final String COLUMN_LOGIN = "login_enter";
      public static final String COLUMN_PASSWORD = "password_enter";
      public static final String COLUMN_URL = "link_enter";
      public static final String COLUMN_COMMENT = "comment_enter";
      public static final String COLUMN_DATE = "date_enter";
      public String results;
      private DBHelper phdb;
      private static Context pcontext;
      private SQLiteDatabase pdb;

      private static final String DB_CREATE = 
                "create table " + TABLE_NAME + "(" +
                  COLUMN_ID + " integer primary key autoincrement, " +
                  COLUMN_TITLE + " VARCHAR(255), " +
                  COLUMN_LOGIN + " VARCHAR(255), " +
                  COLUMN_PASSWORD + " VARCHAR(255), " +
                  COLUMN_URL + " VARCHAR(255), " +
                  COLUMN_COMMENT + " text, " +
                  COLUMN_DATE + " VARCHAR(255)" +
                ");";

public class DBHelper extends SQLiteOpenHelper{


          public DBHelper(Context context) {
                super(context, DB_NAME, null, DB_VERSION);
              }

            @Override
          public void onCreate(SQLiteDatabase sqLiteDatabase) {
            sqLiteDatabase.execSQL(DB_CREATE);
          }

          @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            }


    }

public DataBase(Context c) {
    pcontext = c;
}

public DataBase open() throws SQLiteException {
    phdb = new DBHelper(pcontext);
    pdb = phdb.getWritableDatabase();
    return this;
}

public SQLiteDatabase getDatabase() {
    return pdb;
}

public void close() {
    pdb.close();
}

public long createEntry(String tt, String lg, String ps, String ul,
        String cm, String dt) {
    ContentValues cv = new ContentValues();
    cv.put(COLUMN_TITLE, tt);
    cv.put(COLUMN_LOGIN, lg);
    cv.put(COLUMN_PASSWORD, ps);
    cv.put(COLUMN_URL, ul);
    cv.put(COLUMN_COMMENT, cm);
    cv.put(COLUMN_DATE, dt);

    return pdb.insert(TABLE_NAME, null, cv);
}
}

和 MainScreen 活动将在哪里显示 listview(包含自定义列表行 xml)。

主屏幕活动:

public class MainScreen extends FragmentActivity implements OnClickListener {

      ListView listViewMain;
      SQLiteDatabase db;
      DataBase DB;
      DBHelper dbH;
      Cursor cursor;

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

                    listViewMain = (ListView) findViewById(R.id.listViewMain);

                    ????
}

并列出行自定义xml:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/titleView"
            android:text="" />

        <TextView
            android:id="@+id/dateView"
            android:text="" />

    </RelativeLayout>

我应该使用什么适配器从数据库接收数据(COLUMN_TITLE 和 COLUMN_DATE)并用它们填充 listview 行项(textview = titleView,textview = dateView)?

如果可以请写一个代码示例。

附:谢谢!

【问题讨论】:

  • ResourceCursorAdapter 或 SimpleCursorAdapter,根据您的需要自定义绑定。

标签: android android-listview android-adapter listadapter


【解决方案1】:

SimpleCursorAdapter 将满足您的需求,因为您只在视图中使用文本视图。这个post 给出了如何使用它的一个不错的解释。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 2014-03-05
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多