Java 将json文件解析为imageButton
我正在将json文件解析为android应用程序的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
{ "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上发送给您的消息