私は問題に遭遇しました。だから、プライマリキーに基づいて私のSQLiteデータベースからデータを取得しようとしていると、私は別のアクティビティの別のtextviewsでデータの行を表示します。今、私はインテントを使用して作業していますが、問題は、私がアクティビティに行きたくない場合など、「開始アクティビティ(インテント)」を使用したくないということです。SQLiteとSharedPreferencesの組み合わせを使用
したがって、私は3つのアクティビティを持っています。ユーザーが情報を入力する最初のアクティビティをクリックし、「確認」ボタンをクリックします(データベースに保存されます)。これは2番目のアクティビティに移動します。2番目のアクティビティには「情報」ボタンがあり、次のアクティビティでこのボタンをクリックすると、データベースから取得したデータを表示します。
私は複数の投稿を読み、試しましたが、私には最高の選択肢が何であるか知っていますか?私は現在、SQLiteとSharedPreferencesの組み合わせを使用しようとしています。
データを取得し、保存するための活動1のコード:
Button Progress1 = (Button) findViewById(R.id.progressBar);
Progress1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
res = myDb.getProgressBar1(); //gets the data from the database
if (res.moveToFirst()) {
String LTget = res.getString(res.getColumnIndex("LINETYPE"));
String PT = res.getString(res.getColumnIndex("PACKAGETYPE"));
String QTY = res.getString(res.getColumnIndex("QUANTITY"));
String DUR = res.getString(res.getColumnIndex("DURATION"));
String ST = res.getString(res.getColumnIndex("STARTTIME"));
String ET = res.getString(res.getColumnIndex("ENDTIME"));
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(LTkey, LTget);
editor.putString(PTkey, PT);
editor.putString(qtykey,QTY);
editor.putString(durkey, DUR);
editor.putString(STkey, ST);
editor.putString(ETkey, ET);
editor.commit();
Intent intent = new Intent(Dashboard.this, Actforfragmentname.class); //takes me to the second activity
startActivity(intent);
コードデータを取得するために:(sharedprefから得ることについて不明な点がとても一行を試してみました)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.verify_line);
myDb = new DatabaseHelper(this);
sqLiteDatabase = myDb.getReadableDatabase();
TextView LTTextView = (TextView) findViewById(R.id.textViewspinner1);
TextView PTTextView = (TextView) findViewById(R.id.textViewspinner2);
TextView QTYTextView = (TextView) findViewById(R.id.textViewQuantity);
TextView DURTextView = (TextView) findViewById(R.id.textViewDuration);
TextView STTextView = (TextView) findViewById(R.id.textViewStartTime);
TextView ETTextView = (TextView) findViewById(R.id.textViewendtime);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String LT =(sharedPreferences.getString(LTkey, LTget));
LTTextView.setText(LT);
PTTextView.setText(PT);
QTYTextView.setText(QTY);
DURTextView.setText(DUR);
STTextView.setText(ST);
ETTextView.setText(ET);
}
誰も私を助けることができます??
おかげ
:私は持っている私が知っているデータを取得するので、私はsharedpreferencesを得ていたコードの行を変更しなければなりませんでした。一度データベースに保存しておけば、どこから取得しても問題ありません。 2番目のアクティビティでフェッチする必要はありません。 3回目のアクティビティでデータを直接取得できます。 –