拥有自定义ListView,可以选择不同的选项

时间:2011-07-14 16:15:02

标签: android listview

我目前正在构建一个类似于今天任何Android手机附带的标准闹钟应用程序的ListView。在应用程序中,他们有一个ListView,每行有不同的视图。

例如:

http://www.androidpeople.com/wp-content/uploads/2010/05/listviewwithmultiplechoice.png

http://www.talkandroid.com/android-forums/attachments/android-development-answers-tutorials-code-snippets/360d1234754310-add-edittext-backgroundtxt-child-expandable-list-screencap1.png

我希望这两个选项在同一个ListView上使用复选框和可扩展视图。我试过寻找教程,但没有一个真的有帮助。

在我的代码中,我希望视图是可扩展列表视图和多选视图的组合。 做这样的事情最好的方法是什么? 这是我目前的代码。

public class AlarmList extends ListActivity {
    AlarmListItem[] items = {
            new AlarmListItem("Turn On Alarm", Alerts.class),
            new AlarmListItem("Time", Person.class),
            new AlarmListItem("Time", MTSU_Android.class),
            new AlarmListItem("Sound", Person.class),
            new AlarmListItem("Vibrate", Alerts.class),
            new AlarmListItem("Repeat", Alerts.class),
            new AlarmListItem("Volume", MTSU_Android.class),
            new AlarmListItem("BackupAlarm", Person.class)};

            @Override
            public void onCreate (Bundle icicle)
            {
                super.onCreate(icicle);
                setContentView(R.layout.main3);
                //ListView list1 = ((ListView)findViewById(R.id.ListView01));
                setListAdapter(new ArrayAdapter<AlarmListItem>(
                        this, android.R.layout.simple_list_item_1, items));
            }

            @Override
            protected void onListItemClick(ListView l, View v, int position, long id )
            {
                super.onListItemClick(l, v, position, id);
                final Intent intent = new Intent(this, items[position].getActivity());
                startActivityForResult(intent, position);
            }

1 个答案:

答案 0 :(得分:0)

您需要扩展ListAdapter并覆盖getView。使用传递的位置使用getItem获取对象,然后返回适合传递的对象的视图。

如果视图取决于对象类,则使用instanceof。

进行测试