2012-04-03 13 views
0

Ich versuche, meinen Code in einer Asynch-Aufgabe nur meine App stürzt ab, kann jemand bitte herausfinden, was diesen Fehler verursacht (ich denke nullpointerexeption). um ehrlich zu sein, habe ich einfach einen Code von einer anderen Frage kopiert und alles darin eingefügt.machen einen ProgressDialog mit Asynch Aufgabe

package net.thinkbin; 

import java.util.ArrayList; 
import java.util.HashMap; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.ListActivity; 
import android.app.ProgressDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.Button; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 

public class entertainment extends ListActivity { 

private static final String TITLE = "Title"; 
private static final String AUTHOR = "Author"; 
private static final String VIEWS = "Views"; 
private static final String RATES = "Rates"; 
private static final String CONTENT = "Content"; 

JSONArray ideas = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
// TODO Auto-generated method stub 


super.onCreate(savedInstanceState); 
setContentView(R.layout.listplaceholder3); 
new DoInBackgrd().execute(); 


Button view = (Button) findViewById(R.id.button1); 
view.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     startActivity(new Intent("net.thinkbin.TUTORIAL1")); 
     overridePendingTransition(0, 0); 
     finish(); 
    } 
}); 

Button share = (Button) findViewById(R.id.button2); 
share.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     startActivity(new Intent("net.thinkbin.SHARE")); 
     overridePendingTransition(0, 0); 
     finish(); 
    } 
}); 

Button menu = (Button) findViewById(R.id.buttonhome); 
menu.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     startActivity(new Intent("net.thinkbin.MENU")); 
     overridePendingTransition(0, 0); 
     finish(); 
    } 

}); 



}   

private class DoInBackgrd extends AsyncTask<Void, Void, Void> implements 
DialogInterface.OnCancelListener { 

private ProgressDialog processDialog; 

@Override 
protected void onPreExecute() { 
ProgressDialog.show(entertainment.this, "", "Loading..."); 
processDialog.setCancelable(true); 
} 

public void onCancel(DialogInterface arg0) { 
// TODO Auto-generated method stub 

if (processDialog.isShowing()) { 
processDialog.dismiss(); 
} 

} 


@Override 
protected Void doInBackground(Void... arg0) { 
// TODO Auto-generated method stub 

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String,  String>>(); 


JSONObject json =  JSONfunctions.getJSONfromURL("http://www.thinkbin.net/include/api/index.php?cat=Entertainment&type=Views&i=10"); 

try{ 

     ideas = json.getJSONArray("Ideas"); 

     // looping through All Contacts 
    for(int i = 0; i < ideas.length(); i++){ 
     JSONObject c = ideas.getJSONObject(i); 

     // Storing each json item in variable 
     String title = c.getString(TITLE); 
     String author = c.getString(AUTHOR); 
     String views = c.getString(VIEWS); 
     String rates = c.getString(RATES); 
     String content = c.getString(CONTENT); 

     // creating new HashMap 
     HashMap<String, String> map = new HashMap<String, String>(); 

     // adding each child node to HashMap key => value 
     map.put(TITLE, "Title: " + title); 
     map.put(AUTHOR, "Author: " + author); 
     map.put(VIEWS, "Views: " + views); 
     map.put(RATES, "Rates: " + rates); 
     map.put(CONTENT, content); 

     // adding HashList to ArrayList 
     mylist.add(map); 


    } 


}catch(JSONException e)  { 
    Log.e("log_tag", "Error parsing data "+e.toString()); 
} 

ListAdapter adapter = new SimpleAdapter(entertainment.this, mylist , R.layout.main2, 
     new String[] { TITLE, AUTHOR, VIEWS, RATES, CONTENT }, 
     new int[] { R.id.item_title, R.id.item_subtitle, R.id.item3, R.id.item4, R.id.item5 }); 

setListAdapter(adapter); 

//selecting single ListView item 
ListView lv = getListView(); 

//Launching new screen on Selecting Single ListItem 
lv.setOnItemClickListener(new OnItemClickListener() { 

public void onItemClick(AdapterView<?> parent, View view, 
    int position, long id) { 
// getting values from selected ListItem 
String Title2 = ((TextView) view.findViewById(R.id.item_title)).getText().toString(); 
String Author2 = ((TextView) view.findViewById(R.id.item_subtitle)).getText().toString(); 
String Content2 = ((TextView) view.findViewById(R.id.item5)).getText().toString(); 

Intent in = new Intent(getApplicationContext(), idea.class); 
overridePendingTransition(0, 0); 
in.putExtra(TITLE, Title2); 
in.putExtra(AUTHOR, Author2); 
in.putExtra(CONTENT, Content2); 


startActivity(in); 


} 
}); 
return null; 
} 

@Override 
protected void onPostExecute(Void unused) { 
if (processDialog.isShowing()) { 
    processDialog.dismiss(); 
} 

    } 
} 


} 

logcat:

04-03 15:56:43.988: D/dalvikvm(324): GC_EXTERNAL_ALLOC freed 48K, 53% free 2552K/5379K, external 1625K/2137K, paused 189ms 
04-03 15:56:48.768: D/dalvikvm(324): GC_EXTERNAL_ALLOC freed 7K, 53% free 2570K/5379K, external 3086K/3528K, paused 33ms 
04-03 15:56:48.878: D/dalvikvm(324): GC_EXTERNAL_ALLOC freed 1K, 53% free 2571K/5379K, external 4286K/5352K, paused 39ms 
04-03 15:59:07.597: D/dalvikvm(324): GC_CONCURRENT freed 958K, 53% free 3162K/6727K, external 5965K/6851K, paused 3ms+4ms 
04-03 16:51:19.427: D/dalvikvm(362): GC_EXTERNAL_ALLOC freed 49K, 53% free 2552K/5379K, external 1625K/2137K, paused 48ms 
04-03 16:51:24.338: D/dalvikvm(362): GC_EXTERNAL_ALLOC freed 7K, 53% free 2571K/5379K, external 3086K/3528K, paused 40ms 
04-03 16:51:24.448: D/dalvikvm(362): GC_EXTERNAL_ALLOC freed 1K, 53% free 2572K/5379K, external 4286K/5352K, paused 41ms 
04-03 16:51:28.468: D/AndroidRuntime(362): Shutting down VM 
04-03 16:51:28.468: W/dalvikvm(362): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
04-03 16:51:28.478: E/AndroidRuntime(362): FATAL EXCEPTION: main 
04-03 16:51:28.478: E/AndroidRuntime(362): java.lang.RuntimeException: Unable to start activity ComponentInfo{net.thinkbin/net.thinkbin.entertainment}: java.lang.NullPointerException 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.os.Looper.loop(Looper.java:123) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-03 16:51:28.478: E/AndroidRuntime(362): at java.lang.reflect.Method.invokeNative(Native Method) 
04-03 16:51:28.478: E/AndroidRuntime(362): at java.lang.reflect.Method.invoke(Method.java:507) 
04-03 16:51:28.478: E/AndroidRuntime(362): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-03 16:51:28.478: E/AndroidRuntime(362): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-03 16:51:28.478: E/AndroidRuntime(362): at dalvik.system.NativeStart.main(Native Method) 
04-03 16:51:28.478: E/AndroidRuntime(362): Caused by: java.lang.NullPointerException 
04-03 16:51:28.478: E/AndroidRuntime(362): at net.thinkbin.entertainment$DoInBackgrd.onPreExecute(entertainment.java:92) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.os.AsyncTask.execute(AsyncTask.java:391) 
04-03 16:51:28.478: E/AndroidRuntime(362): at net.thinkbin.entertainment.onCreate(entertainment.java:43) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-03 16:51:28.478: E/AndroidRuntime(362): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
04-03 16:51:28.478: E/AndroidRuntime(362): ... 11 more 
04-03 16:52:48.988: D/dalvikvm(397): GC_EXTERNAL_ALLOC freed 50K, 53% free 2552K/5379K, external 1625K/2137K, paused 134ms 
04-03 16:52:53.798: D/dalvikvm(397): GC_EXTERNAL_ALLOC freed 7K, 53% free 2571K/5379K, external 3086K/3528K, paused 35ms 
04-03 16:52:53.909: D/dalvikvm(397): GC_EXTERNAL_ALLOC freed 1K, 53% free 2572K/5379K, external 4286K/5352K, paused 42ms 
04-03 16:52:57.827: D/AndroidRuntime(397): Shutting down VM 
04-03 16:52:57.827: W/dalvikvm(397): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
04-03 16:52:57.837: E/AndroidRuntime(397): FATAL EXCEPTION: main 
04-03 16:52:57.837: E/AndroidRuntime(397): java.lang.RuntimeException: Unable to start activity ComponentInfo{net.thinkbin/net.thinkbin.entertainment}: java.lang.NullPointerException 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.os.Looper.loop(Looper.java:123) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-03 16:52:57.837: E/AndroidRuntime(397): at java.lang.reflect.Method.invokeNative(Native Method) 
04-03 16:52:57.837: E/AndroidRuntime(397): at java.lang.reflect.Method.invoke(Method.java:507) 
04-03 16:52:57.837: E/AndroidRuntime(397): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-03 16:52:57.837: E/AndroidRuntime(397): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-03 16:52:57.837: E/AndroidRuntime(397): at dalvik.system.NativeStart.main(Native Method) 
04-03 16:52:57.837: E/AndroidRuntime(397): Caused by: java.lang.NullPointerException 
04-03 16:52:57.837: E/AndroidRuntime(397): at net.thinkbin.entertainment$DoInBackgrd.onPreExecute(entertainment.java:92) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.os.AsyncTask.execute(AsyncTask.java:391) 
04-03 16:52:57.837: E/AndroidRuntime(397): at net.thinkbin.entertainment.onCreate(entertainment.java:43) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-03 16:52:57.837: E/AndroidRuntime(397): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
04-03 16:52:57.837: E/AndroidRuntime(397): ... 11 more 
04-03 16:52:59.357: I/Process(397): Sending signal. PID: 397 SIG: 9 
04-03 17:08:38.488: D/dalvikvm(434): GC_EXTERNAL_ALLOC freed 51K, 53% free 2552K/5379K, external 1625K/2137K, paused 78ms 
04-03 17:08:43.277: D/dalvikvm(434): GC_EXTERNAL_ALLOC freed 7K, 53% free 2571K/5379K, external 3086K/3528K, paused 34ms 
04-03 17:08:43.397: D/dalvikvm(434): GC_EXTERNAL_ALLOC freed 1K, 53% free 2572K/5379K, external 4286K/5352K, paused 41ms 
04-03 17:08:48.317: D/dalvikvm(434): GC_CONCURRENT freed 959K, 53% free 3163K/6727K, external 5965K/6851K, paused 4ms+4ms 
04-03 17:09:00.288: D/dalvikvm(434): GC_CONCURRENT freed 1260K, 50% free 3974K/7879K, external 4533K/5704K, paused 4ms+7ms 
+0

wenn Fehler kommen immer Post voll logcat hier .. –

+0

'Unterhaltung.Java siehe Zeile Nr.92', welche ist? –

+0

processDialog.setCancelable (wahr); –

Antwort

0

processDialog null ist, weil es in Ihrem PreExecute Methode nicht richtig initialisiert wurde ...

1
@Override 
protected void onPreExecute() { 

processDialog = ProgressDialog.show(entertainment.this, "", "Loading..."); 
processDialog.setCancelable(true); 

}