使用Intent将数据传递给从数据库返回的第二个活动

时间:2017-01-06 21:03:24

标签: android android-intent

在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);

0 个答案:

没有答案