ボタンのクリックイベントでデータベースとテーブルを作成します。また、データベースとテーブルの作成後、ボタンのクリックイベントで挿入機能を実行します。次のアクティビティでレコードショーを挿入したいです。このアクティビティでは、データを表示するためにリストビューを使用します。データベースにSQLiteOpenHelperクラスを使用できません。OpenOrCreateDatabase()メソッドを使用してデータベースを作成します。だから私がこれのために何をしているのか教えてください???
質問する
1162 次
2 に答える
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 に答える
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);
2番目のアクティビティで
MyApplication myApplication=(MyApplication)getApplication();
myData = myApplication.gettMyData();
于 2012-12-28T09:51:00.337 に答える