【发布时间】:2014-01-06 03:28:56
【问题描述】:
背景资料:
我正在开发一个小型应用程序。它现在的工作方式是在应用程序启动的那一刻,提示用户主要活动。然后从那里,用户单击提示登录活动的登录按钮。现在在我的登录活动中,我设置了一个获取用户用户名的 Intent,然后将其存储在共享首选项中。如果登录成功,则用户转到用户看到的主登录页面:[Welcome back {username}]
问题如下:
如果用户通过 loginactivity 访问主登录页面,那么您可以轻松看到他的用户名,这正是我想要的。但问题是,在主页上,我还有其他用于其他活动的按钮。当用户点击这些活动中的任何一个,然后返回到 mainloggedin 页面时,您所看到的就是:[Welcome Back {}]。他的用户名不再显示。
我的问题:
任何人都可以提出一个快速解决方案,让我可以显示用户名,因此即使用户从 mainloggedinpage 转到另一个活动,然后返回 mainloggedinpage,用户仍然会看到:[Welcome Back {username}] ?
我的登录活动代码 [这是我获取用户名的地方]:
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
// Check for success tag
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
Log.d("request!", "starting");
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);
// check your log for json response
Log.d("Login attempt", json.toString());
// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Login Successful!", json.toString());
// save user data
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(Login.this);
Editor edit = sp.edit();
edit.putString("username", username);
edit.commit();
Intent i = new Intent(Login.this, mainpage.class);
i.putExtra("Welcome back, username", username);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
}else{
Log.d("Login Failure!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
我的 mainloggedinActivity 代码 [这是显示用户名的地方]:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mainpage);
msuggestions = (Button) findViewById(R.id.btn_suggestions);
msuggestions.setOnClickListener(this);
mprayertimes = (Button)findViewById(R.id.btn_activityone);
mprayertimes.setOnClickListener(this);
mqibladirection =(Button)findViewById(R.id.btn_activitytwo);
mqibladirection.setOnClickListener(this);
mnewsboard = (Button) findViewById(R.id.newsboard);
mnewsboard.setOnClickListener(this);
mhadiths = (Button) findViewById(R.id.btn_activitythree);
mhadiths.setOnClickListener(this);
mchat = (Button) findViewById(R.id.btn_discussion);
mchat.setOnClickListener(this);
mallahnames = (Button) findViewById(R.id.btn_activityfour);
mallahnames.setOnClickListener(this);
// Get Username Start
TextView txt_loggedName = (TextView) findViewById(R.id.txt_loggedName);
Intent intent = getIntent();
String username = intent.getStringExtra("Welcome back, username");
txt_loggedName.setText(username);
// Get Username End
buttonLogout = (Button) findViewById(R.id.logout);
buttonLogout.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE);
SharedPreferences.Editor editor=mPreferences.edit();
editor.remove("username");
editor.remove("password");
editor.commit();
Message myMessage=new Message();
myMessage.obj="NOTSUCCESS";
handler.sendMessage(myMessage);
finish();
}
});
任何人都可以帮助我,那么当用户进入主页并单击其中一个按钮然后返回主页时,它仍然显示他的用户名吗? :)
【问题讨论】:
标签: java php android json sharedpreferences