【发布时间】:2015-11-13 08:10:51
【问题描述】:
我想隐藏一个图像并传递给另一个类,但没有这样做。
活动流程:从 A 到 B,然后是 C。返回值和图像从 C 到 B,然后是 A。
接下来,A 可以将数据传递给 B 进行编辑。
活动 A(之前)
c.setOnClickListener(new View.OnClickListener() { pass to B
@Override
public void onClick(View view) {
if ((name != null && name.trim().length() > 0) && (result != null && result.trim().length() > 0)) {
Toast.makeText(getActivity().getApplicationContext(), "not null", Toast.LENGTH_LONG).show();
if (name.equals("Project")) {
Intent intent = new Intent(getActivity(), Project1.class);
Global.img = null;
v.setDrawingCacheEnabled(true);
v.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
v.buildDrawingCache(true);
intent.putExtra("name", name);
intent.putExtra("result", result);
intent.putExtra("description", description);
intent.putExtra("k", k);
if (v.getDrawingCache() != null) {
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
if (bitmap == null) {
Log.e("TAG", "getDrawingCache() == null");
}
Global.img = bitmap;
intent.putExtra("bitmap",true);
startActivityForResult(intent, 0);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { //receive from B
k = data.getIntExtra("k", 0);
Log.e("TAG",k+"");
if (k == 1) {
switch (requestCode) {
case 0:
result = data.getStringExtra("text");
name = data.getStringExtra("a");
description=data.getStringExtra("c");
if (Global.img != null) {
v.setImageBitmap(Global.img); // display image
}
as=Long.parseLong(result);
c.setText(" " + name + "------" + "RM " + result);
break;
}
上面的代码工作正常。但我想要实现的是我不希望在活动 A 上显示图像(在金额旁边)。我只希望在活动 A 上显示图像。
所以这是我迄今为止尝试过的。我删除了
the imageView from `a.xml`
也删除
if (Global.img != null) {
v.setImageBitmap(Global.img);
}
在活动 A onActivityResult 中运行应用程序。
11-13 16:07:15.916 29329-29329/com.example.project.project E/AndroidRuntime: FATAL EXCEPTION: main 进程:com.example.project.project,PID:29329 java.lang.NullPointerException 在 com.example.project.project.Claims$6.onClick(Claims.java:149) 在 android.view.View.performClick(View.java:4654)
其中Claims.java:149指的是if (v.getDrawingCache() != null) {
【问题讨论】:
标签: java android image android-intent