3

これまで連結を行ってきましたが、結果では表示されます

UncleSam.

私がしたいのは、2つの列の間にスペースを入れて、結果が次のようになるようにすることです

Uncle Sam.

これは私が取り組んでいるコードです:

   public Cursor getAllPatients()
{
    Cursor localCursor = //  
            this.myDataBase.query(DB_TABLE, new String[] { 
                    KEY_ID, KEY_FNAME + "||" + KEY_LNAME, KEY_DIAGNOSIS, KEY_LASTFFUP }, null, null, null, null, null);
    if (localCursor != null)
      localCursor.moveToFirst();
    return localCursor;
}

DBHelper.java から

 Cursor cursor = dbHelper.getAllPatients();
    String[] data = new String[]{
            DBHelper.KEY_FNAME + "||" + DBHelper.KEY_LNAME, DBHelper.KEY_DIAGNOSIS, DBHelper.KEY_LASTFFUP};
    // 
    int[] to = new int[] {R.id.fullname, R.id.diagnosis, R.id.lastffup};

    dataAdapter = new SimpleCursorAdapter(this, R.layout.custom_row, cursor, data, to, 0);

私の MainActivity から。

どんな助けでも構いません。ありがとう。

4

3 に答える 3

0

Android Sqlite concat 2 列

このスレッドの作成者と少し会話した後、列を連結せず (実際には必要ありません)、カーソルから取得した文字列を連結することをお勧めします。あなたのステートメントは、人間が読みやすく、ソリューションがよりクリーンになります。

説明:

一般に、テーブルを表すオブジェクトを使用してアプリケーション層でテーブルを表すための非常に便利で効率的なアプローチです。たとえば、テーブル User がある場合、新しいクラス User を作成すると、テーブルの列はこのクラスのプロパティと等しくなります。この方法はかなりエレガントだと思います(他の誰かがあなたのコードを見たとしても、彼は混乱したり怖がったりしません)

最後に、fname と lname を追加するときに単純に連結できます。ListAdapter


だから私はこの方法を好みます:

List<User> users = new ArrayList<User>();
User u = null;
String query = "select * from Table";
Cursor c = db.rawQuery(query, null);
if (c != null && c.moveToFirst()) {
   do { 
      u = new User();
      u.setFirstName(c.getString(c.getColumnIndex("fname")));
      u.setLastName(c.getString(c.getColumnIndex("lname")));
      ...
      users.add(u);
   } while (c.moveToNext());
}

そして、どこかで次のListAdapterことができます:

textView.setText(u.getFirstname() + " " + u.getLastName());

それが役に立てば幸い。

于 2013-08-06T16:46:42.277 に答える