我正在通过Bundle传递价值,正如您在我的代码中看到的那样。
现在,我希望它在另一个活动onCreate()
中的价值。我尝试了它的值,但它显示nullpointerexception。
请帮我解决问题。
Bundle bundle = new Bundle();
String url = "http://www.google.com";
bundle.putString("url", url);
Intent myIntent = new Intent(context, NotificationService.class);
myIntent.putExtras(bundle);
context.startService(myIntent);
获取价值代码:
if (!getIntent().getExtras().getString("url").contains(null)) {
// Do something
}
答案 0 :(得分:25)
这应该是程序。
使用bundle创建一个新的Intent并启动活动。
Intent i = new Intent(context, ActivityName.class);
i.putExtra("key", mystring);
startActivity(i);
在onCreate
中的新Activity中取这样的包Bundle extras = getIntent().getExtras();
String value;
if (extras != null) {
value = extras.getString("key");
}
答案 1 :(得分:22)
您好希望此代码可以帮助您。
Bundle bundle = new Bundle();
bundle.putString("name", "Android");
bundle.putString("iname", "iPhone");
Intent intent = new Intent(getApplicationContext(), MyActivity.class);
intent.putExtras(bundle);
startActivity(intent);
在MyActivity.class中
public Bundle getBundle = null;
getBundle = this.getIntent().getExtras();
String name = getBundle.getString("name");
String id = getBundle.getString("iname");
答案 2 :(得分:2)
if (getIntent().getExtras().getString("url") != null) {
// retrieve the url
}
你必须检查空值
答案 3 :(得分:1)
//将值置于意图中
Intent in = new Intent(MainActivity.this, Booked.class);
in.putExtra("filter", "Booked");
startActivity(in);
//从像这样的
中获取值 Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String filter = bundle.getString("filter");
答案 4 :(得分:0)
试试这个
String url = "http://www.google.com";
Intent myIntent = new Intent(context, NotificationService.class);
myIntent.putExtras("url", url);
startActivity(myIntent);
和另一项活动就像
一样Bundle extra = getIntent().getExtras();
if(extra != null) {
String value = extra.getString("url")
//use this value where ever you want
}
答案 5 :(得分:0)
替换startService(...)
- > startActivity(...)
并且还替换
if (getIntent().getExtras().getString("url").contains(null)) {
// retrieve the url
}
要
if (getIntent().getExtras().getString("url") != null) {
// retrieve the url
}
答案 6 :(得分:0)
因为您将字符串放在一个包中
Bundle youtbundle = new Bundle();
String url = "http://www.google.com";
yourbundle.putString("url", url);
然后将捆绑包作为意图的额外内容
Intent myIntent = new Intent(context, NotificationService.class);
myIntent.putExtras(yourbundle);
context.startService(myIntent);
在开始时你必须从附加内容中删除捆绑
Bundle yourbundle = getIntent().getExtras().getBundle("yourbundle") ;
然后从你的捆绑中获取字符串
if (!yourbundle.getString("url").contains(null)) {
// Do something
}
答案 7 :(得分:0)
Intent serviceIntent = new Intent(YourService.class.getName()); serviceIntent.putExtra(“url”,“www.google.com”); context.startService(serviceIntent);
当服务启动时,将调用onStartCommand()方法,因此在此方法中,您可以从intent对象中获取值(url)
public int onStartCommand(Intent intent,int flags,int startId){
String userID = intent.getStringExtra(“url”);
返回START_STICKY; }
答案 8 :(得分:0)
尝试在NotificationService.class
内添加此内容:
String url = getIntent().getStringExtra("url");