0

我在按钮的单击事件上创建数据库和表。我还在数据库和表创建后对按钮的单击事件执行插入功能。我想在下一个活动中插入记录显示。在这个活动中,我使用 Listview 来显示数据。我不能将 SQLiteOpenHelper 类用于数据库。我使用 OpenOrCreateDatabase() 方法创建数据库。所以请告诉我我为此做了什么???

4

2 回答 2

0

创建自己的应用程序类

public class MyApplication extends Application {

 private  ArrayList myData;

public ArrayList getMyData(){
 return myData;

}
public void putMyData(ArrayList myData){
 this.myData = myData;

}

在您的 AndroidManifest.xml 文件中提及这一点,例如

<application android:icon="@drawable/icon" android:label="@string/app_name"  android:largeHeap="true" android:name="MyApplication">

读取您的第一个活动中的数据,并且在您的第一个活动中这样做

MyApplication myApplication=(MyApplication)getApplication();
myApplication.putMyData(myData);

在第二个活动

MyApplication myApplication=(MyApplication)getApplication();
myData =  myApplication.gettMyData();
于 2012-12-28T09:51:00.337 回答
0

据我了解,您想要相同的按钮来设置您的数据库并将数据插入其中,将您带到另一个活动并显示所有插入的数据?

您可以通过设置单击该按钮的意图来执行此操作,该按钮将带您进入所需的活动。在该活动的 onCreate() 中,您应该调用获取数据的函数。

像这样的东西:

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

    userdatabase viewinfo = new userdatabase(this);
    viewinfo.open();
    String data = viewinfo.getData();
    viewinfo.close();

    TextView txtv = (TextView) findViewById(R.id.viewuserdata);
    txtv.setText(String.valueOf(data)); 

}

这里的 getData() 是一种检索所需数据的方法,并且在您定义和创建数据库的同一类中定义。

在我的例子中, getData() 看起来像这样:

public String getData() {                                                                   //Retrieve complete data from database
    String[] columns = new String[]{KEY_ROWID, USER_NAME,USER_HP,USER_LEVEL,USER_ID};
    Cursor c = userDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iRow = c.getColumnIndex(KEY_ROWID);
    int iName = c.getColumnIndex(USER_NAME);
    int ihp = c.getColumnIndex(USER_HP);
    int ilevel = c.getColumnIndex(USER_LEVEL);
    int iId = c.getColumnIndex(USER_ID);

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getInt(ihp) + " " + c.getInt(ilevel);
    }

    return result;
}

编辑:刚刚看到您需要将数据插入到 ListView 中。我没有这方面的经验,但也许会有所帮助。

于 2012-12-28T09:38:10.313 回答