Я знаю, что есть много вопросов, подобных этому, и клянусь, что я попробовал их все. Я сохраняю строку и базу данных и хочу получить ее в виде списка. Это было выполнено с использованием ListAdapter
(я следил за учебником ToDo List).ListView не работает с SimpleCursorAdapter и ListAdapter
Проблема в том, что я хочу реализовать OnItemClickListener
для этого списка, который был получен из БД. Но в тот момент, когда я заменяю ListAdapter
ListView
, приложение начинает сбой NullPointException
.
Вот код:
public class OfflineActivity extends ListActivity {
private ListAdapter listAdapter;
private TaskDBHelper helper;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.offline_list);
updateUI();
}
private void updateUI() {
helper = new TaskDBHelper(OfflineActivity.this);
SQLiteDatabase sqlDB = helper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, null);
listAdapter = new SimpleCursorAdapter(
this,
R.layout.offline_item,
cursor,
new String[]{TaskContract.Columns.TASK},
new int[]{R.id.taskTextView},
0
);
listView = (ListView) findViewById(R.id.list);
this.setListAdapter(listAdapter);
listView.setAdapter(listAdapter);
}
}
приложение работает отлично, пока я не положил listView.setAdapter(listAdapter);
. Есть ли способ, которым я могу реализовать OnItemClickListener
без внесения больших изменений в мой код?
Вот XML-файлы:
offline_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"
android:layout_weight="1" />
offline_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/taskTextView" />
PS. Я уверен, что listAdapter
не пуст .. coz list
действительно заселяется, если я не добавлю последнюю строку. застрял на нем с 2 дней. plssss help
да ... извините .. пытался что хорошо .. но это же 'NullPointException' ошибка –