2017-01-30 9 views
0

Я пытаюсь заполнить sqlite записей в listview. В моей таблице я разбиваю адрес на колонки, например Улица, Почтовый индекс, Город & Состояние. Я использую SimpleCursorAdapter для загрузки результатов в представления, как в коде ниже: Вот мой ListActivity.javaКак совместить результат android SimpleCursorAdapter?

private DBManager dbManager; 
private ListView listView; 
private SimpleCursorAdapter adapter; 
DbHelper myDb; 

final String[] from = new String[] { 
     DbHelper.COL_NAME, 
     DbHelper.COL_STREET, 
     DbHelper.COL_POSTCODE, 
     DbHelper.COL_CITY, 
     DbHelper.COL_STATE }; 


final int[] to = new int[] { R.id.name, R.id.address }; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 



    setContentView(R.layout.fragment_emp_list); 

    dbManager = new DBManager(this); 
    myDb = new DbHelper(this); 
    dbManager.open(); 
    Cursor cursor = dbManager.fetch(); 

    listView = (ListView) findViewById(R.id.list_view); 
    listView.setEmptyView(findViewById(R.id.empty)); 
    adapter = new SimpleCursorAdapter(this, R.layout.activity_view_record, cursor, from, to, 0); 
    adapter.notifyDataSetChanged(); 

    listView.setAdapter(adapter); 

Вот мое мнение:

<?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="wrap_content" 
    android:orientation="vertical" > 


<TextView 
    android:id="@+id/name" 
    android:layout_width="300dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_toRightOf="@id/id" 
    android:maxLines="1" 
    android:padding="3dp" 
    android:textSize="17sp" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/address" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/nama" 
    android:layout_marginLeft="10dp" 
    android:layout_toRightOf="@id/id" 
    android:ellipsize="end" 
    android:maxLines="2" 
    android:padding="3dp" 
    android:visibility="visible" /> 



</RelativeLayout> 

Моя проблема в том, как объединить УЛИЦУ, СТОЛКНОВЕНИЕ, ГОРОД, ГОСУДАРСТВО и положить их в R.id.address? Используя вышеописанный метод, мне нужно создать текстовое окно для каждого столбца, иначе оно будет ошибочно.

+0

Просто хотите добавить текст? – josedlujan

+0

есть. все 4 колонки в одно текстовое окно –

ответ

0

Внести следующие изменения:

  1. в макете изменения XML

    <TextView 
        android:id="@+id/address" 
        android:text="@string/format_address" 
        ...... 
        /> 
    
  2. В вашем strings.xm добавить следующее:

    <string name="format_address">%1$s, %2$s, %3$s, %4$s</string> 
    
  3. В исходном коде добавить следующее:

    Resources res = getResources(); 
    String text = String.format(res.getString(R.string.format_address), STREET_VALUE, POSTCODE_VALUE, CITY_VALUE, STATE_VALUE); 
    

ПРИМЕЧАНИЕ STREET_VALUE, POSTCODE_VALUE, CITY_VALUE, STATE_VALUE заменить фактическими значениями или строка исх.

+0

Выше работали? –

+0

нет. Я думаю, мне нужно отредактировать вопрос для получения дополнительной информации. –