Android:GridView图像';来自json的
我在将ImageView转换为GridView时遇到问题,我解析JSON,然后从JSON中获取url,并将其放到我的ImageView转换为GridView中,我遇到了一个错误,您能帮助我吗 LogCatAndroid:GridView图像';来自json的,android,url,gridview,imageview,Android,Url,Gridview,Imageview,我在将ImageView转换为GridView时遇到问题,我解析JSON,然后从JSON中获取url,并将其放到我的ImageView转换为GridView中,我遇到了一个错误,您能帮助我吗 LogCat FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gazetaimage/com.gazetaimage.MainActivity}: java.lang.N
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gazetaimage/com.gazetaimage.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
at android.app.ActivityThread.access$600(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5202)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.gazetaimage.ImageAdapter.<init>(ImageAdapter.java:37)
at com.gazetaimage.MainActivity.onCreate(MainActivity.java:17)
at android.app.Activity.performCreate(Activity.java:5106)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2263)
... 11 more
致命异常:main
java.lang.RuntimeException:无法启动活动组件信息{com.gazetaimage/com.gazetaimage.MainActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
在android.app.ActivityThread.access上$600(ActivityThread.java:153)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:5202)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
在com.gazetaimage.ImageAdapter上。(ImageAdapter.java:37)
位于com.gazetaimage.MainActivity.onCreate(MainActivity.java:17)
位于android.app.Activity.performCreate(Activity.java:5106)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2263)上
... 还有11个
和我的代码在我的AsyncTask中,我连接到我的JSON文件,并返回JSONObject,在ImageAdapter.class中,我获取该对象,并将其放入ImageView中
public class ImageAdapter extends BaseAdapter {
public Context mContext;
public String[] mThumbs;
final static String TAG_ITEM = "item";
final static String TAG_BIG_IMAGE = "big_image";
public ImageAdapter (Context c){
mContext = c;
BackTask task = new BackTask();
task.execute();
try {
JSONObject result = task.get();
JSONArray jarray = result.getJSONArray(TAG_ITEM);
for(int i = 0; i < jarray.length(); i++){
JSONObject jrss = jarray.getJSONObject(i);
mThumbs[i] = jrss.getString(TAG_BIG_IMAGE);
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public int getCount() {
return mThumbs.length;
}
@Override
public Object getItem(int position) {
return mThumbs[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageURI(Uri.parse(mThumbs[position]));
return imageView;
}
公共类ImageAdapter扩展了BaseAdapter{
公共语境;
公共字符串[]mThumbs;
最终静态字符串标记\ u ITEM=“ITEM”;
最后一个静态字符串TAG\u BIG\u IMAGE=“BIG\u IMAGE”;
公共图像适配器(上下文c){
mContext=c;
BackTask任务=新建BackTask();
task.execute();
试一试{
JSONObject result=task.get();
JSONArray jarray=result.getJSONArray(标记项);
for(int i=0;i
您似乎还没有初始化mThubs
在循环JSON数组之前,请放置以下行:
mThumbs = new String[jarray.length()];
我相信您的空指针异常是由mThumbs没有初始化引起的。 检查适配器中的第37行