I have this code,problem with two fields,I dont know what to do,my MainActivity class and logcat below:
public class MainActivity extends ListActivity {
private Context context;
Intent intent;
private static String url = "https://fierce-citadel-4259.herokuapp.com/hamsters";
private static final String TITLE = "title";
private static final String DESCRIPTION = "description";
private static final String IMAGE = "image";
ArrayList<HashMap<String,String>> jsonlist = new ArrayList<HashMap<String, String>>();
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ProgressTask(MainActivity.this).execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class ProgressTask extends AsyncTask<String,Void,Boolean> {
private ProgressDialog dialog;
private ListActivity activity;
public ProgressTask(MainActivity activity) {
this.activity = activity;
context = activity;
dialog = new ProgressDialog(context);
}
private Context context;
protected void onPreExecute(){
this.dialog.setMessage("Progress start");
this.dialog.show();
}
protected void onPostExecute(final Boolean success){
try{
if((this.dialog != null)&& this.dialog.isShowing()){
this.dialog.dismiss();
}
CustomListAdapter adapter = new CustomListAdapter(MainActivity.this,jsonlist, R.layout.list_item,new String[]{TITLE,DESCRIPTION},new int[]{R.id.title,R.id.description});
setListAdapter(adapter);
}catch (final IllegalArgumentException e){e.printStackTrace();}
}
protected Boolean doInBackground(String... args) {
JSONParser jParser = new JSONParser();
JSONArray json = jParser.getJSONFromUrl(url);
for(int i =0;i<json.length();i++) {
try {
JSONObject c = json.getJSONObject(i);
String vtitle = c.getString(TITLE);
String vdescription = c.getString(DESCRIPTION);
String vimage = c.getString(IMAGE);
HashMap<String, String> map = new HashMap<>();
map.put(TITLE, vtitle);
map.put(DESCRIPTION, vdescription);
map.put(IMAGE, vimage);
jsonlist.add(map);
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}
}
}
and porblem with this: new ProgressTask(MainActivity.this).execute();(onCreate) and this: this.dialog.show();(in OnPreExecute) this in LogCat:
09-20 19:07:34.141 29133-29155/com.example.vnvbnv.myapplication E/JSON PARSER﹕ Error parsing dataorg.json.JSONException: End of input at character 0 of
09-20 19:07:34.141 29133-29155/com.example.vnvbnv.myapplication W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x40d98ba0)
09-20 19:07:34.151 29133-29155/com.example.vnvbnv.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:864)
Caused by: java.lang.NullPointerException
at com.example.vnvbnv.myapplication.MainActivity$ProgressTask.doInBackground(MainActivity.java:116)
at com.example.vnvbnv.myapplication.MainActivity$ProgressTask.doInBackground(MainActivity.java:88)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:864)
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x54a42000 size:307200
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x40848000 size:4096
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x54e49000 size:307200
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x49151000 size:4096
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x5501b000 size:307200
09-20 19:07:34.441 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x50cd7000 size:4096
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x54bd2000 size:1536000
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x4091c000 size:4096
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x54e94000 size:1536000
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x5040d000 size:4096
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x55066000 size:1536000
09-20 19:07:34.471 29133-29133/com.example.vnvbnv.myapplication D/qdmemalloc﹕ ion: Unmapping buffer base:0x50ce6000 size:4096
09-20 19:07:34.501 29133-29133/com.example.vnvbnv.myapplication E/WindowManager﹕ Activity com.example.vnvbnv.myapplication.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{411b2020 V.E..... R......D 0,0-456,144} that was originally added here
android.view.WindowLeaked: Activity com.example.vnvbnv.myapplication.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{411b2020 V.E..... R......D 0,0-456,144} that was originally added here
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:458)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
at android.app.Dialog.show(Dialog.java:286)
at com.example.vnvbnv.myapplication.MainActivity$ProgressTask.onPreExecute(MainActivity.java:99)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
at android.os.AsyncTask.execute(AsyncTask.java:534)
at com.example.vnvbnv.myapplication.MainActivity.onCreate(MainActivity.java:47)
at android.app.Activity.performCreate(Activity.java:5165)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520)
at android.app.ActivityThread.access$600(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:5751)
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:1083)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
at dalvik.system.NativeStart.main(Native Method)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ killProcess, pid=29133
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ dalvik.system.VMStack.getThreadStackTrace(Native Method)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ java.lang.Thread.getStackTrace(Thread.java:599)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ android.os.Process.killProcess(Process.java:1004)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:123)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
09-20 19:07:37.294 29133-29155/com.example.vnvbnv.myapplication D/Process﹕ java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)