Приложение с виджетом ListView в Android OS

Рейтинг: 1Ответов: 1Опубликовано: 25.06.2011

Здравствуйте. Изучаю ОС Android, точнее SDK этой системы, её API. Встала задача повторить пример с виджетом ListView. Приложение просто не запускается на мобильном устройстве (запускаю в эмуляторе устройств Android в IDE Eclipse).

Отлаживать при программировании под Android толком еще не умею. Проследить, где же я сделал не так, не могу. Прошу помощь продвинутых девелоперов под эту мобильную ОС. Согласно канонам работы всех активных компонентов, для ListView требуется установить объекту ListView слушателя нажатия на элемент списка (OnItemClickListener). Естественно нужно переопределить все методы этого интерфейса:

@Override
public void onItemClick(AdapterView<?> a, View v, int pos, long id) {
    tvResponse.setText(answers[pos]);
}

Также требуется через адаптер связать виджет с набором данных (у меня массив из 3-х строк - answers):

 lView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,answers));

Весь код объекта ListActivity приведен ниже:

package com.samples.listview;
import android.app.Activity;
import android.app.ListActivity;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.ListView;
import android.view.View;
import android.view.ViewGroup;

public class ListViewActivity extends ListActivity {

    private TextView tvQuest, tvResponse;

    String[] answers={"А","Б","С"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ListView lView = (ListView)findViewById(R.id.lView);
        lView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,answers));
        lView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> a, View v, int pos, long id) {
                tvResponse.setText(answers[pos]);
                // Реализуем загушеньку
            }
        });
        tvQuest = (TextView)findViewById(R.id.label);
        tvResponse = (TextView)findViewById(R.id.response);
    }
}

А здесь листинг разметки для инициализации всех компонентов приложения:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView  
    android:id="@+id/label"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/quest"
    android:textStyle="bold"
    />
    <TextView  
    android:id="@+id/response"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
    <ListView 
    android:id="@+id/lView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
    />
</LinearLayout>

Добавлено.

Вот лог:

[ - RoboTestApp] Android Launch!
[-RoboTestApp] adb is running normally.
. . . .
[-RoboTestApp] HOME is up on device 'emulator-5554'
[-RoboTestApp] Uploading RoboTestApp.apk onto device 'emulator-5554'
[-RoboTestApp] Installing RoboTestApp.apk...
[-RoboTestApp] Success!
[-RoboTestApp] Starting activity com.samples.listview.ListViewActivity on device emulator-5554
[-RoboTestApp] ActivityManager: Starting: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} comp={com.samples.listview/com.samples.listview.ListViewActivity} }

Ответы

Ответов пока нет.