在SIGNIN活动中单击“登录”按钮数据将从单独的后台类(扩展asynctask)中的数据库中检索。 onPostExecute我开始"导航抽屉活动"并使用intent将该数据发送到Navigation Drawer Activity。在" DrawerActivity"我正在接收该数据并将其显示在textView中。我使用了sharedPreferences,因此在成功登录后SIGNIN活动不再打开,所以当我第二次启动活动时,textView的值为null,因为没有传递额外的东西。如何解决此问题并永久存储textView的值。
背景课
@Override
protected void onPostExecute(final String result) {
final android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(ctx);
builder.setMessage("Login Successfull");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (!result.contains("FALSE")) {
Intent i = new Intent(ctx, DrawerActivity.class);
Bundle b = new Bundle();
b.putString("name", namejsn);
b.putString("email", emailjsn);
i.putExtra("Login", b);
((Activity) ctx).finish();
ctx.startActivity(i);
}
DrawerActivity
public class DrawerActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
static String email;
static String firstName;
static String lastname;
static String profile;
ImageView imageViewHeader;
private int PICK_IMAGE_REQUEST = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
SharedPreferences sharedPreferences = getSharedPreferences("MyLogin.txt", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("FirstLogin", true);
editor.commit();
Intent i = getIntent();
if (i.hasExtra("Login")) {
Bundle b = i.getBundleExtra("Login");
firstName = b.getString("name");
email = b.getString("email");
Log.d("DrawerActivityLogin", email + firstName);
}
TextView tv1 = (TextView) v.findViewById(R.id.txtheader)
TextView tv2 = (TextView) v.findViewById(R.id.txtheadr2);
tv1.setText(firstName)
tv2.setText(email);