2014-09-20 4 views
0

Я заполняю свой ListView данными, которые получаю из базы данных, которую я создал. Я хочу получить имя элемента в ListView, который долго кликнут. я попытался использовать следующий метод:Получить значение элемента ListView в Android

- parent.getItemAtPosition(position).toString(); 
- myListView.getItemAtPosition(position).toString(); 
- myListView.getSeletedItem(position).toString(); 

Эти три заявления работают хорошо, но как я пополняя LisView, получая данные из моей базы данных, поэтому я получаю следующее значение, возвращенное:

09 -20 13: 01: 22,370: I/System.out (5351): [email protected]

тогда как имя элемента, который я щелкая, является 'Home' ..

Пожалуйста, помогите мне. Как я могу преобразовать [email protected] в Home?

MY АДАПТОР: Функция

mCursor = mDB.fetchData(); 
String[] columns = new String[] { AreaDatabase.KEY_AREA }; 
    int[] to = new int[] { R.id.tvArea }; 

    mAdapter = new SimpleCursorAdapter(this, R.layout.lvarea, mCursor, 
      columns, to); 
    lvArea.setAdapter(mAdapter); 

fetchData():

public Cursor fetchAreaData() { 
    Cursor mCursor = ourDatabase.query(AREA_TABLE_NAME, new String[] { 
      KEY_ROWID, KEY_AREA }, null, null, null, null, null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 

    return mCursor; 
} 
+0

@ Adeel Шахзад ........ Добро пожаловать в Stackoverflow ....... выкладываю код отформатирован и то, что вы пробовали до сих пор .... так что мы можем помочь вам быстрее .....! – Devrath

ответ

0

Cursor имеет метод getString(int columnIndex). Вы можете использовать это, чтобы получить значение String от Cursor от указанного индекса столбца.

> Cursor currentCur = myListView.getItemAtPosition(position); 
> String name = currentCur.getString(1); //It will return KEY_AREA (column index 1) value from Cursor 
+0

Хорошо работает для первой записи в ListView. Но получение этой ошибки для второй записи в ListView
'09-20 13: 41: 21.970: E/AndroidRuntime (8396): java.lang.IllegalStateException: Не удалось прочитать строку 1, col 2 из CursorWindow. Перед доступом к данным убедитесь, что курсор инициализирован правильно. ' –

+0

Можете ли вы предоставить код при вызове метода getString()? –

+0

Вы используете позицию как columnIndex? Вы не должны. позиция больше похожа на положение строки курсора вместо столбца. Поэтому вы просто вызываете getString (1); за каждый предмет –

0

сделать так:

parent.getItemAtPosition(position).toString(); 
+0

По-прежнему получается тот же результат –

Смежные вопросы