2015-01-29 5 views
-1

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

это мой код:

public class Map extends Activity { 

Cursor cursor; 
ListView listView; 
String categoria = "livro"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map); 

    final CitySQL dbHelper = new CitySQL(Map.this, null, null, 1); 
    final SQLiteDatabase db = dbHelper.getWritableDatabase(); 

    final String[] camposDb = {"city", BaseColumns._ID}; 
    cursor = db.query("cities", camposDb, null, null, null, null, "city ASC"); 
    int[] camposView = new int[] {android.R.id.text1}; 

    @SuppressWarnings("deprecation") 
    final SimpleCursorAdapter adapter = new SimpleCursorAdapter(Map.this, 
      android.R.layout.two_line_list_item, cursor, camposDb, camposView); 
    listView= (ListView)findViewById(R.id.city_list); 
    listView.setAdapter(adapter); 
    final Geocoder geocoder=new Geocoder(this, Locale.ENGLISH); 

    listView.setOnItemClickListener(new OnItemClickListener(){ 
     @TargetApi(Build.VERSION_CODES.HONEYCOMB) 
     public void onItemClick(AdapterView<?> parent, View view, int posicao,long id) { 

      final String morada = listView.getAdapter().getItem(posicao).toString(); 
      Toast.makeText(Map.this, morada, Toast.LENGTH_LONG).show(); 

Я сделал Toast, чтобы увидеть именно то, что происходит, когда я нажал, но моя цель состоит в том, чтобы получить деталь (название города) и искать место.

+1

'listView.getAdapter(). GetItem (posicao)' возвращает 'Cursor' в положении' posicao'. По-видимому, он содержит 2 столбца. – njzk2

ответ

0

Изменить

final String morada = listView.getAdapter().getItem(posicao).toString(); 

в

Cursor cursor = (Cursor) listView.getAdapter().getItem(posicao); 
String morada = cursor.getString(cursor.getColumnIndex("column_name_for_city")); 
Смежные вопросы