我只想在点击然后在另一个活动中显示时,从url加载我的imageview。
这是我的适配器类
private void openDetailActivity(String name, String propellant, String desc, String imageUrl)
{
Intent i=new Intent(c, DetailActivity.class);
//PACK DATA
i.putExtra("NAME_KEY",name);
i.putExtra("PROPELLANT_KEY",propellant);
i.putExtra("DESCRIPTION_KEY",desc);
i.putExtra("IMAGEURL_KEY",imageUrl);
c.startActivity(i);
}
然后使用此代码在详细信息中打开
Intent i=this.getIntent();
String imageurl=i.getExtras().getString("IMAGEURL_KEY");
touchimg = imageurl;
并且我点击了setonClicklistener,因此图像可以在另一个布局中加载完整大小。 此处代码
Intent i = new Intent(DetailActivity.this, enlarge.class);
i.putExtra("IMAGEURL_KEY",touchimg);//PENTING UNTUK AMBIL DATA
startActivity(i);
最后,这个类下面的catch url图像显示 的 enlarge.class
String touchimg = getIntent().getExtras().getString("IMAGEURL_KEY");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_touchimageview);
ImageView imglarge1 = (ImageView) findViewById(R.id.imglarge);
Picasso.with(this).load(touchimg).placeholder(R.drawable.placeholder).into(imglarge1);
}
我收到此日志消息的错误:
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.newsapp.unair.rizki.enlarge.<init>(enlarge.java:18)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2116)
我该如何解决?
我用Log.d检查,当我把Log放在下面得到时,意图就像这样
Intent i=this.getIntent();
String imageurl=i.getExtras().getString("IMAGEURL_KEY");
touchimg = imageurl;
if(touchimg != null)
Log.d("TAG", "tidak null");
else
Log.d("TAG", "image null"):
并且Log说“tidak null”或者不是Null,但是如果当Log.d我把它放在onClick上这样:
Intent i = new Intent(DetailActivity.this, enlarge.class);
i.putExtra("IMAGEURL_KEY",touchimg);
startActivity(i);
if(touchimg != null)
Log.d("TAGput", "tidak null");
else
Log.d("TAGput", "image null");
日志没有显示任何内容,这是什么意思?
答案 0 :(得分:2)
在您的情况下,在activity2中,在转到activity1之前,您将以这种方式存储String:
Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("message", message);
startActivity(intent);
得到像这样的值
Intent i = getIntent();
if (i.hasExtra("message")){
String value = i.getStringExtra("message");
}
答案 1 :(得分:1)
Intent i = new Intent(DetailActivity.this, enlarge.class);
i.putExtra("IMAGEURL_KEY",getIntent().getStringExtra("IMAGEURL_KEY"));//PENTING UNTUK AMBIL DATA
startActivity(i);
和
String touchimg = getIntent().getStringExtra("IMAGEURL_KEY");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_touchimageview);
ImageView imglarge1 = (ImageView) findViewById(R.id.imglarge);
Picasso.with(this).load(touchimg).placeholder(R.drawable.placeholder).into(imglarge1);
}
签入enlarge.class。