java - 使用 SQLite 数据库填充列表

标签 java android eclipse sqlite listactivity

我在 Android 应用程序开发方面是个新手,我试图从 SQLite 数据库中获取行以显示为 Listactivity,但这不起作用,程序会意外终止。这是代码:

package ankur.test.app;

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

public class testMenu extends ListActivity{

    HotOrNot Infor = new HotOrNot(this);
    {
        Infor.open();
    }
    String[] result = Infor.getList();
    {
        Infor.close();
    }


    @Override
    protected void onCreate(Bundle ankurtestlist) {
        // TODO Auto-generated method stub
        super.onCreate(ankurtestlist);
        setListAdapter(new ArrayAdapter<String>(testMenu.this, android.R.layout.simple_list_item_2, result));

    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        Object cheese = result[position];
    /*  try{
        Class ourClass = Class.forName("ankur.test.app."+ cheese);
        Intent ourIntent = new Intent(testMenu.this, ourClass);
        startActivity(ourIntent);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }*/
    }
}

这是另一个类中的方法:

public String[] getList() {
        // TODO Auto-generated method stub
        String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_HOTNESS};
        Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
        ArrayList name = new ArrayList(); 
        int i = 0;

        int iName = c.getColumnIndex(KEY_NAME);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
            name.add(c.getString(iName));
            i++;
        }

        String[] result = (String[]) name.toArray();
        return result;
    }

如有任何帮助,我们将不胜感激。

最佳答案

似乎您遇到了上下文问题,只需将初始化新的 Infor = HotOrNot(this); 放入 onCreate() 并将代码编辑为,

String[] result;
HotOrNot Infor;

@Override
    protected void onCreate(Bundle ankurtestlist) {
        super.onCreate(ankurtestlist);\

        Infor = new HotOrNot(this);
        Infor.open();
        result = Infor.getList();
        Infor.close();
        setListAdapter(new ArrayAdapter<String>(testMenu.this, android.R.layout.simple_list_item_2, result));
    }

关于java - 使用 SQLite 数据库填充列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156919/

相关文章:

java - 如何让我的 Android 应用程序更快地接收/发送数据?

eclipse - 协作者如何将他们的更改推送到我在 GitHub 中的存储库

java - Eclipse 内置 shell

java - Eclipse:使大括号更明显

java - 如何有效地从数据库检索数据以填充 selectonemenu

java - 关于 Characteristics.UNORDERED in action book 中 Java 8 的困惑

android - 发送 USSD 代码安卓

android - Activity和Fragment之间如何回调?

java - 无法将文本从另一个类追加到 JTextArea

java - 在Java中选择多个文件