Я разбираю json-файл в java для Android-приложения.parsing json file as imageButton
В моем json-файле есть ссылка на изображение для кнопки изображения и ссылка на воспроизведение по клику. в приложении это показать все, но когда я нажимаю на изображение.
{ "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);
}
}
}
стек журнала трассировки
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing D/AndroidRuntime: Shutting down VM
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x55d89b20)
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing I/Process: Sending signal. PID: 23927 SIG: 9
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing D/AndroidRuntime: procName from cmdline: com.tutorial.Jsonparsing
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing E/AndroidRuntime: in writeCrashedAppName, pkgName :com.tutorial.Jsonparsing
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing D/AndroidRuntime: file written successfully with content: com.tutorial.Jsonparsing StringBuffer : ;com.tutorial.Jsonparsing
09-01 10:59:10.111 23927-23927/com.tutorial.Jsonparsing E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tutorial.Jsonparsing, PID: 23927
java.lang.IllegalStateException: Could not find a method new(View) in the activity class com.android.tools.fd.runtime.BootstrapApplication for onClick handler on view class android.widget.ImageButton with id 'ivImage'
at android.view.View$1.onClick(View.java:3815)
at android.view.View.performClick(View.java:4443)
at android.view.View$PerformClick.run(View.java:18442)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5021)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoSuchMethodException: new [class android.view.View]
at java.lang.Class.getConstructorOrMethod(Class.java:472)
at java.lang.Class.getMethod(Class.java:857)
at android.view.View$1.onClick(View.java:3808)
at android.view.View.performClick(View.java:4443)
at android.view.View$PerformClick.run(View.java:18442)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5021)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
пожалуйста, поделитесь своим журнала трассировки стека –
Что ваш класс активности? –