Я тестирую базовый SQLite-запрос и используя SimpleCursorAdapter для заполнения ListView, содержащего LinearLayout, которые содержат TextViews данных столбца, но когда я изменяю порядок TextView, данные в перемещении TextView с порядком, а не с помощью R.id.Предполагается, что конструктор SimpleCursorAdapter должен наблюдать порядок столбцов в конструкторе?
В приведенном ниже примере порядок TextView - это @ + id/rowid и @ + id/name, и данные из курсора правильно заполняются.
Однако, если я изменяю row.xml для изменения порядка EditText (я вырезал весь элемент TextView и вставлял его на противоположную сторону другого TextView), данные из курсора остаются в том же порядке, то есть. данные DatabaseHelper.NAME из курсора переходят в текстовый файл @ + id/rowid EditText, а данные _id от курсора переходят в @ + id/name
Это нормальное поведение? Я ожидал, что столбцы SimpleCursorAdapter «from» будут заполнять представления «to» в соответствующем порядке в конструкторе.
Пример кода:
Cursor usersCursor;
String query = String.format("SELECT _id, %s FROM %s",
DatabaseHelper.NAME, DatabaseHelper.TABLE);
cursor = db.getReadableDatabase().rawQuery(query, null);
usersCursorAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.row, usersCursor,
new String[] { "_id", DatabaseHelper.NAME },
new int[] { R.id.rowid, R.id.name },
0);
userList.setAdapter(usersCursorAdapter);
и R.layout.row.xml является:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/rowid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:textSize="36sp" />
</LinearLayout>
Darn, это сделал. Так будет ли это быть спецификацией Eclipse/ADT или связано с инструментами сборки SDK? – troutit
@troutit Это можно увидеть с помощью любого инструмента сборки, который не знает, что ваш код Java зависит от 'R.java'. Если инструмент сборки не знает, чтобы перестроить ваш код при изменении «R.java», вы увидите эти проблемы. –