0

ボタンのクリックイベントでデータベースとテーブルを作成します。また、データベースとテーブルの作成後、ボタンのクリックイベントで挿入機能を実行します。次のアクティビティでレコードショーを挿入したいです。このアクティビティでは、データを表示するためにリストビューを使用します。データベースにSQLiteOpenHelperクラスを使用できません。OpenOrCreateDatabase()メソッドを使用してデータベースを作成します。だから私がこれのために何をしているのか教えてください???

4

2 に答える 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 に答える