Android 单击将项目id传递给intent
我从第一个意图中打印出正确的id,但没有正确地将第二个意图发送给它 单击项目的第一个意图: (对于以后的观众,此问题已更新为正确答案):Android 单击将项目id传递给intent,android,android-intent,onitemclick,Android,Android Intent,Onitemclick,我从第一个意图中打印出正确的id,但没有正确地将第二个意图发送给它 单击项目的第一个意图: (对于以后的观众,此问题已更新为正确答案): 日志:05-08 17:46:19.166:I/System.out(14382):视频id intent 2=null您将long作为额外值传递,但试图将其作为字符串读取。l是long的类型 因此,您需要提取long而不是String-like videoLong = extras.getLong("videoId"); 因此,全面实现第二个意图是必要的
日志:
05-08 17:46:19.166:I/System.out(14382):视频id intent 2=null
您将long
作为额外值传递,但试图将其作为字符串读取。
l是long的类型
因此,您需要提取long而不是String-like
videoLong = extras.getLong("videoId");
因此,全面实现第二个意图是必要的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final VideoView videoView;
setContentView(R.layout.activity_play_video);
Bundle extras;
Long videoLong;
if (savedInstanceState == null) {
extras = getIntent().getExtras();
if (extras == null) {
videoLong= null;
} else {
videoLong= extras.getLong("videoId");
System.out.println("video id intent 2 = " + videoLong);
}
}
你放了很长的一段时间,试图得到一根绳子。。。第一:在第一个活动中输入Long,然后检索字符串。更改
extras.getString(…
videoLong=(Long)null
这不起作用,需要以不同的方式处理它,例如videoLong=0
;或者按照Matej的建议,使用Long videoLong;
,如果在extras.getLong(“videoId”)中找不到该值,请记住
它将返回0,而不是null。没问题,祝Android编程好运:-)。如果你认为我的回答是有用的,请把它投票或标记为正确。非常感谢:)videoLong=null
long不能为null,需要用另一种方式处理是的,我忘了。。。原始数据类型不能为NULL,需要使用包装类长,回答编辑:P…也可能考虑使用不同的默认值(如果0不是可接受的默认值)。
videoLong = extras.getLong("videoId");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final VideoView videoView;
setContentView(R.layout.activity_play_video);
Bundle extras;
Long videoLong;
if (savedInstanceState == null) {
extras = getIntent().getExtras();
if (extras == null) {
videoLong= null;
} else {
videoLong= extras.getLong("videoId");
System.out.println("video id intent 2 = " + videoLong);
}
}