Java Android getApplicationContext() 从上一个类返回一个空对象

我正在尝试使用 getApplicationContext() 将用户从一个 java 类传递到另一个类。不幸的是,它不起作用并返回 null。我希望将用户信息从 LoginActivity 传递到 CustomMapActivity。用户信息存储在firebase中,这可能是一个问题吗?


我相信清单是有序的。请看下文。


  <activity android:name=".ui.MapCustomActivity"></activity>

     <activity android:name=".ui.LoginActivity">

         <intent-filter>

             <action android:name="android.intent.action.MAIN" />


             <category android:name="android.intent.category.LAUNCHER" />

         </intent-filter>

     </activity>

    <activity android:name=".ui.RegisterActivity" />

     <activity android:name=".ui.ProfileActivity" />

    <activity android:name=".ui.MapCustomActivity"></activity>

下面是登录活动,


public class LoginActivity extends AppCompatActivity implements

        View.OnClickListener

      {

       @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_login);

        mEmail = findViewById(R.id.email);

        mPassword = findViewById(R.id.password);

        mProgressBar = findViewById(R.id.progressBar);


        setupFirebaseAuth();

        findViewById(R.id.email_sign_in_button).setOnClickListener(this);

        findViewById(R.id.link_register).setOnClickListener(this);


        hideSoftKeyboard();

    }





    private void showDialog(){

        mProgressBar.setVisibility(View.VISIBLE);


    }


    private void hideDialog(){

        if(mProgressBar.getVisibility() == View.VISIBLE){

            mProgressBar.setVisibility(View.INVISIBLE);

        }

    }


www说
浏览 326回答 4
4回答

万千封印

要使用 Intent 将数据从一个活动传递到其他活动,请确保您执行了以下步骤。步骤 1 在源活动中创建一个新的 Explicit 或 Implicit Intent 对象。步骤 2 调用intent.putExtra(String key, Object data)方法在其中保存数据。步骤 3 在源活动中调用 startActivity(intent) 方法将意图传递给 android os。步骤 4 在目标活动中调用 getIntent() 方法。在你的情况下,我认为你错过了第 2 步

婷婷同学_

是否可以使用 abundle来给出活动之间的信息Bundle bundle = new Bundle();bundle.putInt("value_name", 0);// 0 = valuebundle.putString("value_name", "text"); // Text = value stringIntent intent = new Intent(this, SecondActivty.class);intent.putExtras(bundle);startActivity(intent);并抓住你的第二个活动public class SecondActivty extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {&nbsp; &nbsp; super.onCreate(savedInstanceState);&nbsp; &nbsp; setContentView(R.layout.second_activty);&nbsp; &nbsp; Toolbar toolbar = findViewById(R.id.toolbar);&nbsp; &nbsp; setSupportActionBar(toolbar);&nbsp; &nbsp; int value = savedInstanceState.getInt("value_name");}

凤凰求蛊

在您当前的 Activity 中,创建一个新的 Intent:String value="Hello world";Intent i = new Intent(CurrentActivity.this, NewActivity.class);&nbsp; &nbsp;&nbsp;i.putExtra("key",value);startActivity(i);然后在新的 Activity 中,检索这些值:Bundle extras = getIntent().getExtras();if (extras != null) {&nbsp; &nbsp; String value = extras.getString("key");&nbsp; &nbsp; //The key argument here must match that used in the other activity}使用这种技术,您将能够在活动中传递变量

ABOUTYOU

您正在使用 getApplicationContext 但也许您正在尝试使用Activity 中的getApplication方法。我不建议使用这种方法将对象从一个活动传递到另一个活动。您应该使用 Intent 对象。看看官方文档
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java