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