如何从按钮的单击事件获取数据库到另一个显示插入记录的活动?

时间:2012-12-28 09:28:47

标签: android eclipse sqlite

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

2 个答案:

答案 0 :(得分: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。我对此没有经验,但也许this可以提供帮助。

答案 1 :(得分: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();