2014-03-07 152 views
0

我對asynctask有問題。當啓動應用程序顯示我的錯誤:第一次運行失敗,第二次在Asynctask中工作

The process... has stopped unexpectedly.Please try again

然後回來啓動應用程序,它工作正常。爲什麼會發生?

我的AsyncTask:

private class DownloadList extends AsyncTask<Void, Void, Void> { 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
} 

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

@Override 
protected void onPostExecute(Void args) { 
    CustomList adapter = new CustomList(MainActivity.this, profesion,dia, imageId); 
    list=(ListView)findViewById(R.id.lista); 
    list.setAdapter(adapter); 
} 
} 

CustomList.java

public class CustomList extends ArrayAdapter<String>{ 
private final Activity context; 
private final String[] profesion; 
private final Integer[] imageId; 
private final String[] dia; 

public CustomList(Activity context, 
String[] profesion, String[] dia, Integer[] imageId) { 
super(context, R.layout.list_single, profesion); 
this.context = context; 
this.dia = dia; 
this.profesion = profesion; 
this.imageId = imageId; 
} 
@Override 
public View getView(final int position, View view, ViewGroup parent) { 
LayoutInflater inflater = context.getLayoutInflater(); 
View rowView= inflater.inflate(R.layout.list_single, null, true); 
TextView txtTitle = (TextView) rowView.findViewById(R.id.nombre); 
ImageView imageView = (ImageView) rowView.findViewById(R.id.img); 
TextView txtdia = (TextView) rowView.findViewById(R.id.direccion); 

txtTitle.setText(profesion[position]); 
imageView.setImageResource(imageId[position]); 
txtdia.setText(dia[position]); 

rowView.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) {  

     final Dialog dialog = new Dialog(context); 
     dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
     dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); 
     dialog.setContentView(R.layout.dialog); 
     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
     dialog.show(); 

     String nombre = profesion[position]; 
     ImageView img = (ImageView)dialog.findViewById(R.id.pasar); 
     TextView txth = (TextView)dialog.findViewById(R.id.brevehistoria); 
     TextView txtn = (TextView)dialog.findViewById(R.id.nombre); 
     TextView txtd = (TextView)dialog.findViewById(R.id.dia); 
     Button close = (Button)dialog.findViewById(R.id.close); 
     TextView entrada = (TextView)dialog.findViewById(R.id.entrada); 
     TextView salida = (TextView)dialog.findViewById(R.id.salida); 

     if(nombre.equals("La borriquita")){ /*19 recorrido*/ 
      img.setImageResource(R.drawable.image_1); 
      txtn.setText("La borriquita"); 
      txth.setText("La cofradía remonta sus orígenes a principios de la década de los 60. Su primera salida procesional se produjo en Marzo de 1964. Desde entonces siempre ha estado ligada al Colegio Salesiano. En el año 2007 es nombrada por el Palacio Arzobispal como Hermandad de Penitencia de la Archidiócesis de Sevilla. Actualmente, El capataz es Manuel Martín Nieto y cuenta con 29 costaleros y 100 nazarenos, con túnica blanca, botonadura y cíngulo rojo y antifaz blanco o turbante del mismo color para los más pequeños."); 
      txtd.setText("Domingo Ramos (Mañana)"); 
      entrada.setText("15:40"); 
      salida.setText("11:00"); 

     }else if(nombre.equals("El cautivo")){ /*18 recorrido */ 
      img.setImageResource(R.drawable.image2); 
      txtn.setText("El cautivo"); 
      txth.setText("La cofradía fue fundada en San Miguel en 1944, cuando realizó su Estación de Penitencia por primera vez. Actualmente, Antonio Rodríguez es el capataz del paso de Cristo, con 25 costaleros. Manuel Martín Nieto en el paso de Virgen con 30 costaleros y cuenta con 261 nazarenos, con túnica blanca con capa y antifaz del mismo color."); 
      txtd.setText("Domingo Ramos (Tarde)"); 
      entrada.setText("00:00"); 
      salida.setText("18:00"); 

     }else if(nombre.equals("La merced")){ /*21*/ 
      img.setImageResource(R.drawable.image5); 
      txtn.setText("La merced"); 
      txth.setText("Primer período entre 1958-1978 y recuperada en 1987. Los capataces del Misterio del Calvario son Francisco Manuel Morilla y Juan Antonio Gil, y el paso calza 38 costaleros. El capataz de la Virgen es Manuel Martín Nieto y el paso lleva 30 costaleros y 300 nazarenos, con túnica blanca, capa y antifaz morados, botonadura y cíngulo del mismo color."); 
      txtd.setText("Lunes Santo"); 
      entrada.setText("00:25"); 
      salida.setText("18:50"); 

     }else if(nombre.equals("Los salescianos")){/*21*/ 
      img.setImageResource(R.drawable.image6); 
      txtn.setText("Los salescianos"); 
      txth.setText("La cofradía fue constituida en el año 1944. Paso de Cristo, el capataz es Luis Mejías Pérez y posee 40 hermanos. El paso de Virgen, cuyo capataz es Juan Manuel Gallardo posee 30 costaleros."); 
      txtd.setText("Martes Santo"); 
      entrada.setText("01:30"); 
      salida.setText("20:00"); 

     }else if(nombre.equals("San francisco")){/*21*/ 
      img.setImageResource(R.drawable.image7); 
      txtn.setText("San francisco"); 
      txth.setText("Fundada a finales del año 1961 en San Francisco. El capataz del paso de Cristo es Damián López y el paso calza 28 costaleros. El capataz del paso de Virgen es Antonio Miguel Lara y el mismo lleva 30 costaleros y 330 nazarenos, con túnica blanca, antifaz de color azul imperial, botonadura azul y cíngulo de esparto."); 
      txtd.setText("Miércoles Santo"); 
      entrada.setText("01:30"); 
      salida.setText("19:00"); 

     }else if(nombre.equals("La compañía")){/*18*/ 
      img.setImageResource(R.drawable.image3); 
      txtn.setText("La compañía"); 
      txth.setText("La primera noticia de la Hermandad de Gloria es de 1814. La cofradía data de 1920. Paso de Cristo, el capataz es Juan Piña y posee 29 costaleros. El paso de Virgen, cuyo capataz es Juan Antonio Gil posee 30 costaleros."); 
      txtd.setText("Jueves Santo"); 
      entrada.setText("02:00"); 
      salida.setText("20:00"); 

     }else if(nombre.equals("Jesús")){/*21*/ 
      img.setImageResource(R.drawable.image4); 
      txtn.setText("Jesús"); 
      txth.setText("La tradición popular remonta su fundación a 1609. Paso de Cristo, los capataces son D. José Coto López y D. Moisés Vázquez Martínez, y el paso tiene 35 costaleros. En el paso de Virgen, los capataces son D. Miguel Ángel Ortega Carmona y D. Antonio Palma Ramírez con 35 costaleros y 620 nazarenos, con túnica de color morado, capa rizada y botonadura del mismo color y cíngulo de esparto."); 
      txtd.setText("Viernes Santo"); 
      entrada.setText("13:00"); 
      salida.setText("05:00"); 

     }else if(nombre.equals("Santo entierro")){/*16*/ 
      img.setImageResource(R.drawable.image8); 
      txtn.setText("Santo entierro"); 
      txth.setText("La primera noticia que se tiene es del año 1541. Ha sufrido numerosos altibajos a lo largo de su historia y fue recuperada definitivamente en el año 1984. El paso de Virgen tiene 24 costaleros y su capataz es José Pérez Arias. El paso de Cristo tiene 20 costaleros y su capataz es Miguel Ortega. Actualmente, cuenta con 50 nazarenos, con túnica, capa y antifaz de color negro con cordones y cíngulo de esparto."); 
      txtd.setText("Viernes Santo"); 
      entrada.setText("00:00"); 
      salida.setText("20:30"); 

     }else if(nombre.equals("La soledad")){/*15*/ 
      img.setImageResource(R.drawable.image9); 
      txtn.setText("La soledad"); 
      txth.setText("Los orígenes de su configuración como cofradía se encuentran en el segundo tercio del siglo XIX. Deja de procesionar en 1965 y se recupera definitivamente en el año 1997. Capataz, José Manuel Morillo Sánchez al mando de 30 costaleros. Actualmente, cuenta con 120 nazarenos, con túnicas blancas, antifaz de raso negro y escapulario de los Sagrados Corazones de Jesús."); 
      txtd.setText("Sábado Santo"); 
      entrada.setText("22:00"); 
      salida.setText("18:00"); 

     } 
     close.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 
    } 
}); 
return rowView; 
} 
} 

的logcat:

03-07 12:27:44.459: E/AndroidRuntime(3191): FATAL EXCEPTION: main 
03-07 12:27:44.459: E/AndroidRuntime(3191): java.lang.NullPointerException 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at com.semanasanta.moron.MainActivity$DownloadList.onPostExecute(MainActivity.java:517) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at com.semanasanta.moron.MainActivity$DownloadList.onPostExecute(MainActivity.java:1) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.os.AsyncTask.finish(AsyncTask.java:417) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.os.AsyncTask.access$300(AsyncTask.java:127) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.os.Looper.loop(Looper.java:123) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at java.lang.reflect.Method.invoke(Method.java:507) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
03-07 12:27:44.459: E/AndroidRuntime(3191):  at dalvik.system.NativeStart.main(Native Method) 

編輯

MainActiv ity.java

public class MainActivity extends FragmentActivity{ 


Context ctx; 
    /*ADs*/ 
    private AdView adView; 
    ListView list; 
    private static final String AD_UNIT_ID = ""; 
    ViewPager vp; 
    private vpAdapter myAdapter; 
    private String tabtitles[] = new String[] { "Principal", "Tiempo", "Últimas noticias" }; 
    final static String ScreenName = "ssmoron"; 
    final static String LOG_TAG = "rnc"; 
    ProgressDialog progressDialog; 

    private ResideMenu resideMenu; 
    private MainActivity mContext; 
    private ResideMenuItem inicio; 
    private ResideMenuItem ayudanos; 
    private ResideMenuItem fuentes; 
    private ResideMenuItem contacto; 

    String[] profesion = { 
      "La borriquita", 
      "El cautivo", 
      "La merced", 
      "Los salescianos", 
      "San francisco", 
      "La compañía", 
      "Jesús", 
      "Santo entierro", 
      "La soledad" 
    }; 

    String[] dia = { 
      "Domingo de ramos", 
      "Domingo de Ramos", 
      "Lunes Santo", 
      "Martes Santo", 
      "Miércoles Santo", 
      "Jueves Santo", 
      "Viernes Santo", 
      "Viernes Santo", 
      "Sábado Santo" 
    }; 
    Integer[] imageId = { 
      R.drawable.image_1, 
      R.drawable.image2, 
      R.drawable.image5, 
      R.drawable.image6, 
      R.drawable.image7, 
      R.drawable.image3, 
      R.drawable.image4, 
      R.drawable.image8, 
      R.drawable.image9 
    }; 

List<HashMap<String, Object>> post_lists = new ArrayList<HashMap<String, Object>>(); 
    List<String> lists = new ArrayList<String>(); 
    ArrayAdapter<String> adapter = null; 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //AppData.activity = this; 
     setContentView(R.layout.activity_main);  

     ctx = this; 
     //mContext = this; 
     setUpMenu(); 
     // Create an ad. 
     adView = new AdView(this); 
     adView.setAdSize(AdSize.BANNER); 
     adView.setAdUnitId(AD_UNIT_ID); 

     /*RelativeLayout ads = (RelativeLayout) findViewById(R.id.ads); 
     ads.addView(adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     adView.loadAd(adRequest);*/ 

     /***************************************************************************/ 

     vp = (ViewPager) findViewById(R.id.pager); 
     myAdapter = new vpAdapter(); 
     vp.setAdapter(myAdapter); 

     DownloadList newTask = new DownloadList(); 
     newTask.execute(); 


     PagerTabStrip strip = (PagerTabStrip)findViewById(R.id.pagertabstrip); 
     strip.setTabIndicatorColor(0x4e5054); 
     strip.setDrawFullUnderline(true);  
     vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int i, float v, int i2) { 

      } 

       @Override 
       public void onPageSelected(int i) { 

        switch (i) { 
        case 0: 
         break; 
        default: 
         break; 
       case 1: 
        list = (ListView) findViewById(R.id.listaaa); 
        if(list.getCount() == 0){ 
         startweather(); 
        }else{ 
        } 
        break; 
       case 2: 
        list = (ListView)findViewById(R.id.listaa); 
        if(list.getCount() == 0){ 
         downloadTweets(); 
        }else{ 
        } 

        break; 
       } 
      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
       // TODO Auto-generated method stub 

      } 

     }); 
    }; 

    /* SLIDE */ 
    private class vpAdapter extends PagerAdapter{ 

     @Override 
     public int getCount() { 
      return 3; 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view == ((LinearLayout)object); 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      // ((ViewPager)container).removeView((LinearLayout)object); 
     } 

     @Override 
     public void finishUpdate(ViewGroup container) { 

     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int position) { 
      LayoutInflater inflater = (LayoutInflater)container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View v = null; 

      switch (position) { 
      case 0: 
       v = inflater.inflate(R.layout.fragmenttab1, null); 
       break; 
      case 1: 
       v = inflater.inflate(R.layout.fragmenttab2, null); 
       break; 
      case 2: 
       v = inflater.inflate(R.layout.fragmenttab3, null); 
       break; 
      } 
      ((ViewPager)container).addView(v,0); 
      return v; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return tabtitles[position]; 
     } 

     @Override 
     public Parcelable saveState() { 
      return null; 
     } 
    } 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#fff" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:id="@+id/header" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="#fff" > 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="50dp" 
      android:gravity="center_vertical" 
      android:paddingLeft="30dp" 
      android:text="Menú" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="#888888" /> 

     <TextView 
      android:id="@+id/openmenu" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/ic_action_overflow" 
      android:clickable="true" 
      android:contentDescription="Desc" 
      android:visibility="visible" /> 

     <TextView 
      android:id="@+id/share" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/ic_action_share" 
      android:clickable="true" 
      android:contentDescription="Desc" 
      android:visibility="visible" /> 

    </RelativeLayout> 

    <android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" > 

     <android.support.v4.view.PagerTabStrip 
      android:id="@+id/pagertabstrip" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" 
      android:background="#8D74C0" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:textColor="#fff" /> 
    </android.support.v4.view.ViewPager> 

    <!-- <RelativeLayout 
     android:id="@+id/ads" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:gravity="bottom" > 
    </RelativeLayout>--> 

</LinearLayout> 

FragmentTab1.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/lista" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:drawSelectorOnTop="false" 
     android:fadingEdge="none" /> <!-- HEIGHT --> 

    <LinearLayout 
     android:id="@+id/empty" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:visibility="gone" > 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_marginTop="20dp" 
      android:src="@drawable/ic_launcher" /> <!-- @drawable/emptydata --> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="30dp" 
      android:gravity="center" 
      android:text="No se encontró ninguna información" 
      android:textColor="#aaa" 
      android:textSize="20sp" /> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="30dp" 
      android:gravity="center" 
      android:text="Inténtalo de nuevo más tarde" 
      android:textColor="#aaa" 
      android:textSize="20sp" /> 
    </LinearLayout> 

</LinearLayout> 
+0

把'list =(ListView)findViewById(R.id.lista);'in'onCreate(.....)'並且只在'onPostExecute(...)設置'Adapter' –

+0

什麼是行'MainActivity.java'中的517? – Raghunandan

+0

@Raghunandan第517行是list.setAdapter(adapter); – Ataulf

回答

0
the line 517 is list.setAdapter(adapter); 

這意味着列表爲空這表明初始化失敗

list=(ListView)findViewById(R.id.lista); 

檢查您的MainActivit佈局xml,如果您有ListView並且是lista

如果沒有,你需要在你的layout xml中使用id lista的listview。

+0

我有一個viewpager主佈局「MainActivity.xml」和ListView ID爲'list'我有另一種佈局,名爲「Fragmenttab1.xml」 – Ataulf

+1

@Ataulf發佈它讓我們看看你有什麼 – Raghunandan

+0

我編輯了我的帖子 – Ataulf

相關問題