安卓在Fragment里面传递东西的问题

geshi4942 2017-11-02 02:15:45
我在一个fragment设置了2个按钮的点击事件。
点击事件的作用是:传递一张图片和一个int数值到一个Activity并转跳到该Activity。

问题来了,当我点击第一个按钮的时候是可以传递图片和数值到那个Activity中的。

但是当我点击第二个按钮别说传递东西过去了,连转跳都不行程序直接崩了。请问这是怎么回事?

这是具体代码(Fragment1.java)

public class Fragment1 extends Fragment {

private Bitmap bitmap;
private Button btn;
private Button btn1;
Intent intent;

@Override
public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
View v=inflater.inflate(R.layout.y1, container, false); //让fragment关联布局文件
intent = new Intent(getActivity(),Shoppingtrolley.class);//转跳到Shoppingtrolley

btn=(Button)v.findViewById(R.id.btn11);//第一个按钮
btn1=(Button)v.findViewById(R.id.btn12);//第二个按钮
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.game13);

return v;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
intent.putExtra("bitmap",bitmap);//传一张图片
intent.putExtra("整数", 38);//传一个int型的数值
startActivity(intent);//启动转跳
Toast.makeText(getActivity(),"提交至购物车",0).show();
}
});

btn1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(intent);//启动转跳
Toast.makeText(getActivity(),"提交至购物车",0).show();
}
});

}
}

这是具体代码(Shoppingtrolley.java)
public class Shoppingtrolley extends Activity {

private Bitmap bitmap,bitmap1;
ImageView imageview,imageview1;
TextView tv;
int price;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shoppingtrolley);

imageview=(ImageView)findViewById(R.id.imageView1);
tv=(TextView) findViewById(R.id.textView2);

Intent intent=getIntent();
if(intent!=null)
{
bitmap=intent.getParcelableExtra("bitmap");
imageview.setImageBitmap(bitmap);
price=getIntent().getExtras().getInt("整数");
tv.setText("¥"+price+"");

}

}

}
...全文
361 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
boatwater 应用层 2017-11-10
  • 打赏
  • 举报
回复
第二个跳转没传递东西 ,但是那个activity 接受数据时没做非空判断所以崩了
yuhuaijun 2017-11-10
  • 打赏
  • 举报
回复
加个容错出理,避免直接点击第二个按钮,因为没有进行传参设置导致获取为 null的异常: Intent intent = getIntent(); if (intent != null && intent.getExtras() != null) {
窃格瓦拉 2017-11-10
  • 打赏
  • 举报
回复
我知道你问题出哪了,初学者常犯的毛病,Fragment里面代码没问题,问题出在了Shoppingtrolley里面.当你点击了第二个按钮后,那个Intent里没有整数也没有bitmap,但是在Shoppingtrolley里面,你只对getintent非空做了判断,,bitmap = intent.getParcelableExtra("bitmap");price = getIntent().getExtras().getInt("整数"),这2行根本就没收到数据,,但不会报错,但你 price = getIntent().getExtras().getInt("整数")要报空指针异常,你改成这样:
if (intent != null) {
			bitmap = intent.getParcelableExtra("bitmap");
			imageview.setImageBitmap(bitmap);
			//price = getIntent().getExtras().getInt("整数");
			price=intent.getIntExtra("整数", 0);
			System.out.println(price);
		}
] 当你点击第二个按钮的时候,因为名字为"整数"对应的键值对没有接受到数据,就显示默认数据0,此外你的图片也显示不出来的,因为bitmap也是null
NN_iaoiao 2017-11-10
  • 打赏
  • 举报
回复
startActivity(intent);//启动转跳 改为getActicity().startActivity(intent);//启动转跳
NN_iaoiao 2017-11-10
  • 打赏
  • 举报
回复
图片太大 内存溢出
头发还没秃a 2017-11-08
  • 打赏
  • 举报
回复
你第二个Activity接收数据那里的问题
suwyhoho 2017-11-08
  • 打赏
  • 举报
回复
遇到同样的问题 先mark 期待大神解决
HooSuen 2017-11-06
  • 打赏
  • 举报
回复
我也是刚看完第一行代码,我自己感觉问题是出在这里-------首先第二个按钮是不会传递数据的,因为给intent放入键值对的代码是写在第一个按钮的点击事件里的,所以点击第二个按钮只是跳转到另一个activity,不会传递数据,之后在执行第二个activity中给imageview和textview设置图片以及文本的代码时,因为此时intent并没有携带数据,故而发生错误导致崩溃。 我也不知道对不对,我是这样理解的。
code作业本 2017-11-06
  • 打赏
  • 举报
回复
问题应该出在五楼说的地方吧,好好看看文档,或者代码的提示,intent支持这样put bitmap吗
YXTS122 2017-11-03
  • 打赏
  • 举报
回复
可以的话,把你的这个项目发到我邮箱1444089871@qq.com,我帮你看看。。。。。
邻家的邻家 2017-11-03
  • 打赏
  • 举报
回复
intent.putExtra("bitmap",bitmap);//传一张图片?
geshi4942 2017-11-02
  • 打赏
  • 举报
回复
我重新打了一下。

现在的情况是点击第一个按钮传递东西后,点击第二个按钮可以转跳。
但是点击第二个按钮继续传递图片过去程序就崩了。

如果我是先点击第二个按钮传递图片,再点击第一个按钮程序也会蹦,就是不能传递2个东西过去不然就崩。

程序崩的时候logcat好像也没报出什么红色的错误信息,以下是程序崩的时候截的图,我是个初学者见谅...

雨焰 2017-11-02
  • 打赏
  • 举报
回复
真不如你直接贴logcat的报错信息!
yuhuaijun 2017-11-02
  • 打赏
  • 举报
回复
有出错的LOG? getExtra()是否为空?

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧