具有ListActivity的数据库

时间:2012-03-19 16:51:55

标签: android

我正在制作我的第一个程序来使用SQLite,这只是我程序的一部分,而我在我的课程中使用Activity就可以了(表格已经成功打开)。

public class Obvestila extends ListActivity

现在我不得不扩展ListActivity而不是Activity。但现在,当我点击菜单中的图标打开这个新表格时,它会崩溃。在logcat我没有看到任何详细的错误。

package com.test.testt;

import java.util.List;
import java.util.Random;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;

public class Obvestila extends ListActivity{
    private CommentsDataSource datasource;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        datasource = new CommentsDataSource(this);
        datasource.open();

        List<Comment> values = datasource.getAllComments();

        ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(this,
                android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
    }


    public void onClick(View view) {
        @SuppressWarnings("unchecked")
        ArrayAdapter<Comment> adapter = (ArrayAdapter<Comment>) getListAdapter();
        Comment comment = null;
        switch (view.getId()) {
        case R.id.add:
            String[] comments = new String[] { "Cool", "Very nice", "Hate it" };
            int nextInt = new Random().nextInt(3);          
            comment = datasource.createComment(comments[nextInt]);
            adapter.add(comment);
            break;
        case R.id.delete:
            if (getListAdapter().getCount() > 0) {
                comment = (Comment) getListAdapter().getItem(0);
                datasource.deleteComment(comment);
                adapter.remove(comment);
            }
            break;
        }
        adapter.notifyDataSetChanged();
    }

    @Override
    protected void onResume() {
        datasource.open();
        super.onResume();
    }

    @Override
    protected void onPause() {
        datasource.close();
        super.onPause();
    }

}

知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

将此添加到您的main.xml

<ListView android:id="@android:id/list"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"/>

答案 1 :(得分:0)

XML文件中没有android.R.id.list元素。 ListView必须在xml中具有以下ID:

@android:id/list