Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将json文件解析为imageButton_Java_Android_Json_Listview_Imagebutton - Fatal编程技术网

Java 将json文件解析为imageButton

Java 将json文件解析为imageButton,java,android,json,listview,imagebutton,Java,Android,Json,Listview,Imagebutton,我正在将json文件解析为android应用程序的java 在我的json文件中,有imagebutton的图像链接和单击播放的链接。 在应用程序中,它显示的一切,但当我点击图像按钮应用程序崩溃 { "channels": [ { "name": "News", "link": "http://something.comchunks.m3u8", "cat": "news", "image": "http://w

我正在将json文件解析为android应用程序的java

在我的json文件中,有imagebutton的图像链接和单击播放的链接。 在应用程序中,它显示的一切,但当我点击图像按钮应用程序崩溃

{  "channels":
 [ 
    { 
        "name": "News",
        "link": "http://something.comchunks.m3u8", 
        "cat": "news", 
        "image": "http://www.logo.com/img.png" 
    } 
  ]

}
此处的Java代码:

public class ActorAdapter extends ArrayAdapter<Actors> {
    ArrayList<Actors> listItem;
    LayoutInflater inflater;
    int Resource;
    ViewHolder holder;
    private String url;


    public ActorAdapter(Context context, int resource, ArrayList<Actors> objects) {
        super(context, resource, objects);
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        Resource = resource;
        listItem = objects;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // convert view = design
        View v = convertView;

        if (v == null) {
            holder = new ViewHolder() ;
            v = inflater.inflate(Resource, null);
            holder.imageview = (ImageButton) v.findViewById(R.id.ivImage);
            holder.tvName = (TextView) v.findViewById(R.id.tvName);

            holder.tvcat = (TextView) v.findViewById(R.id.tvCountryt);
            holder.tvuri = (TextView) v.findViewById(R.id.link);


            v.setTag(holder);
        } else {
            holder = (ViewHolder) v.getTag();
        }
        holder.imageview.setImageResource(R.drawable.ic_launcher);
        new DownloadImage(holder.imageview).execute(listItem.get(position).getImage());
        holder.tvName.setText(listItem.get(position).getName());

        holder.tvcat.setText(listItem.get(position).getcat());
        holder.tvuri.setText(listItem.get(position).getlink());
        return v;

    }

    static class ViewHolder {
        public ImageButton imageview;
        public TextView tvName;
        public TextView tvcat;
        public TextView tvuri;

    }

    private class DownloadImage extends AsyncTask<String, Void, Bitmap> {

        ImageButton bmImage;

        public DownloadImage(ImageButton bmImage) {
            this.bmImage = bmImage;
        }

        @Override
        protected Bitmap doInBackground(String... urls) {
            // TODO Auto-generated method stub

            String urldisplay = urls[0];
             Bitmap Icon = null;

             try{
                  InputStream in = new java.net.URL(urldisplay).openStream();

                  Icon = BitmapFactory.decodeStream(in);

              }catch(Exception e){

                  Log.e("Error", e.getMessage());

                  e.printStackTrace();
              }

            return Icon;
        }

        /* (non-Javadoc)
         * @see android.os.AsyncTask#onPostExecute(java.lang.Object)
         */
        @Override
        protected void onPostExecute(Bitmap result) {
            // TODO Auto-generated method stub

            bmImage.setImageBitmap(result);

        }

    }
}

@法哈德的问题可能在这条线上

holder.imageview = (ImageButton) v.findViewById(R.id.ivImage);

在holder类中初始化了一个
ImageView
,现在将其转换为
ImageButton
。将其替换为
ImageView
,并确保
ImageView
参考版面+支架中的每个位置并正确投射。

@Fahad问题可能在这一行

holder.imageview = (ImageButton) v.findViewById(R.id.ivImage);

在holder类中初始化了一个
ImageView
,现在将其转换为
ImageButton
。将其替换为
ImageView
,并确保
ImageView
引用版面+支架中的每个位置,并正确地对其进行强制转换。

您需要在ivimage中添加版面

初始化

private Context mContext;



 public ActorAdapter(Context context, int resource, ArrayList<Actors> objects) {
    super(context, resource, objects);

 mContext=context
   }






 if (v == null) {
        holder = new ViewHolder() ;
        v = View.inflate(mContext, R.layout.row_layout, null);
        holder.imageview = (ImageButton) v.findViewById(R.id.ivImage);
       .....remaning code...

     }
私有上下文mContext;
公共Actorapter(上下文、int资源、ArrayList对象){
超级(上下文、资源、对象);
mContext=上下文
}
如果(v==null){
holder=新的ViewHolder();
v=视图。充气(mContext,R.layout.row\u layout,null);
holder.imageview=(ImageButton)v.findViewById(R.id.ivImage);
…还押代码。。。
}

您需要添加iImage..所在的布局

初始化

private Context mContext;



 public ActorAdapter(Context context, int resource, ArrayList<Actors> objects) {
    super(context, resource, objects);

 mContext=context
   }






 if (v == null) {
        holder = new ViewHolder() ;
        v = View.inflate(mContext, R.layout.row_layout, null);
        holder.imageview = (ImageButton) v.findViewById(R.id.ivImage);
       .....remaning code...

     }
私有上下文mContext;
公共Actorapter(上下文、int资源、ArrayList对象){
超级(上下文、资源、对象);
mContext=上下文
}
如果(v==null){
holder=新的ViewHolder();
v=视图。充气(mContext,R.layout.row\u layout,null);
holder.imageview=(ImageButton)v.findViewById(R.id.ivImage);
…还押代码。。。
}

请共享您的日志堆栈跟踪您的活动类别是什么?请共享您的日志堆栈跟踪您的活动类别是什么?这不是问题这不是问题这里是您的活动。这是我在Fb plz CHECKCONXT上发送给您的消息这里是您的活动。这是我在Fb plz check上发送给您的消息