我一直在研究这个项目作为一项任务,我一直在努力回答这个问题,对我来说应该只是:
Bundle data = getIntent().getExtras();
但这是不正确的! 下面的代码和下面的问题是我的答案。
import android.app.Activity;
import android.os.Bundle;
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
我需要获取此类将从Intent
收到的HelloWorldActivity
个对象。
所以,
声明一个名为Bundle的类型的新变量,并为此类中的调用getIntent().getExtras()
赋值。
所以我已经搜索并搜索了我不理解的答案。
我再次回答:
Bundle data = getIntent().getExtras();
并且不正确。有人可以向我解释我错过了什么吗? 感谢
答案 0 :(得分:1)
您假设启动Activity的传入Intent在其扩展数据中包含Bundle。也就是说,HelloWorldActivity必须完成以下任务:
Intent sendIntent = newIntent(this,HelloWorld.class); //或将Intent指向正确的Activity的其他方式 Bundle sendBundle = new Bundle(); //将数据放入Bundle的一些示例 //请注意,密钥应使用包前缀。 sendBundle.putString(“com.example.android.myapp.HELLOWORLD_KEY”,“Hello,World”); //等 sendIntent.putExtras(sendBundle); startActivity(sendIntent);
如果你这样做,那么在HelloWorld中你可以调用
Bundle data = getIntent()。getExtras();
将返回您放入sendBundle的内容。
我通常会向传出的Intent添加一个动作,即使我使用了显式的Intent。这允许我在其他地方检查传入的Intent以获得正确的操作。在尝试使用它之前,我还测试了Intent中的扩展数据是否为空。
最后,请记住声明
Bundle data = getIntent()。getExtras();
应该在onCreate();