我有一个问题。我有一个应用程序,你可以投票给你喜欢的人。您每天只能投票一次。当用户使用SharedPreferences投票时,我保存那天,因此用户当天不能再投票。一切都运转正常。我创建了另一个活动,从该活动我知道用户的选择。这意味着,我知道谁想要投票。我的问题是:如何获得用户的共享偏好(用户上次投票的日子),将其写入SharedPreferences(投票活动会知道我选择某人)并且我必须将相同的代码从投票活动复制到第二个活动或我可以在某些代码处使用我的投票活动吗?我的代码保存了Preferences并调用了JSON:
private void savePreferences(String key, int value) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.commit();
}
class AttemptLogin extends AsyncTask<String, String, String> {
@Override
protected void onPostExecute(String file_url) {
// TODO Auto-generated method stub
super.onPostExecute(file_url);
pDialog.dismiss();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
String pos = pos1.toString();
Log.i("12", pos);
int success;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("pos", pos));
Log.d("request!", pos);
JSONObject json = jsonParser.makeHttpRequest(VOTE_URL, "POST",
params);
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Successful!", json.toString());
Intent i = new Intent(Vote.this, MainActivity.class);
finish();
startActivity(i);
} else {
Log.d("Failure!", json.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(Balsuok.this);
pDialog.setMessage("Voting...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
}
答案 0 :(得分:0)
像这样设置共享偏好。
活动1: -
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();
在第二项活动中获取共享偏好。
活动2: -
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null);