我遇到了一个问题。所以我试图从我的SQLite数据库中获取基于主键的数据,然后我将在另一个活动的单独文本视图中显示数据行。现在,我使用Intents工作,但问题是我不想使用“startactivity(intent)”,例如因为我不想去活动,我只想发送数据。
所以,在上下文中,我有3个活动。用户填写信息的第一个活动,然后单击“验证”按钮(保存到数据库)。这会将它们带到第二个活动,它将在其上显示“信息”按钮,当在下一个活动上单击此按钮时,我想要显示我从数据库中检索到的数据。
我已阅读并试过多个帖子,但是有谁知道我最好的选择是什么?我目前正在尝试使用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);
}
任何人都可以帮帮我吗?
由于
答案 0 :(得分:0)
您应该使用共享首选项或SQLite数据库,如果您有少量数据,则应使用第一个数据库。第二个,如果它更大。
因此,您应该在活动1中按下按钮时在数据库中推送信息,并在活动3中检索它们。
答案 1 :(得分:0)
我通过使用我正在尝试的方法并且同时使用SQLite和共享首选项来实现它。我不得不改变我获得共享偏好的代码行,以便检索我所知道的数据:
SharedPreferences sharedPreferences = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
String LT = sharedPreferences.getString(LTkey, null);
String PT = sharedPreferences.getString(PTkey, null);
String QTY = sharedPreferences.getString(qtykey, null);
String DUR = sharedPreferences.getString(durkey, null);
String ST = sharedPreferences.getString(STkey, null);
String ET = sharedPreferences.getString(ETkey, null);