私は Android Studio で Android 用のアプリを開発しています。このアプリでは、ページ html の解析を行い、リストビューで結果を確認したいのですが、次のエラーが発生しました。
java.lang.NullPointerException
at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:104)
at com.megadown.megacodownloader.ParsingArrayAdapter.<init>(ParsingArrayAdapter.java:30)
at com.megadown.megacodownloader.Tab_Search$ParsingPaginaWeb.onPostExecute(Tab_Search.java:256)
at com.megadown.megacodownloader.Tab_Search$ParsingPaginaWeb.onPostExecute(Tab_Search.java:118)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
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:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)
09-08 02:46:26.289 3004-3004/? E/Launcher: Error finding setting, default accessibility to not found: accessibility_enabled
そして、なぜこのエラーが発生したのかわかりませんでした!! これは行のエラーのコードです:
adapter = new ParsingArrayAdapter(getActivity, titoli, descrizioni,immagini);
lista.setAdapter(adapter);
ParsingArrayAdapter:
public class ParsingArrayAdapter extends ArrayAdapter<String>{
//riferimenti statici alle risorse e agli id
private final static int LAYOUT = R.layout.riga_listview;
private final static int TITOLO = R.id.riga_listview_titolo;
private final static int DESCRIZIONE = R.id.riga_listview_descrizione;
private final static int IMMAGINE = R.id.imageView;
ArrayList<String> titoli; //lista dei titoli
ArrayList<String> descrizioni;
//ArrayList<Integer> immagini;//lista delle descrizioni
int [] immagini;
Context c; //context
LayoutInflater inflater; //layout inflater
public ParsingArrayAdapter(Context context, ArrayList<String> titoli, ArrayList<String> descrizioni, int[] immagini)
{
super(context,TITOLO);
this.c = context;
this.titoli = titoli;
this.descrizioni = descrizioni;
this.immagini = immagini;
this.inflater = LayoutInflater.from(c);
}
@Override
public int getCount()
{
return titoli.size(); //ritorno lunghezza lista ( = numero dei titoli)
}
//quando la lista richiede una view
@Override
public View getView(int pos,View view,ViewGroup parent)
{
CacheRiga cache; //cache
if(view==null)//se � la prima volta che viene richiesta la view
{
// creo la view ma non l'attacco alla lista in quanto devo ancora modificare
// i testi delle textview
view = inflater.inflate(LAYOUT, parent,false);
cache = new CacheRiga(); //inizializzo la cache
cache.titolo = (TextView) view.findViewById(TITOLO); //collego titolo
cache.descrizione = (TextView) view.findViewById(DESCRIZIONE);//collego descrizione
cache.img = (ImageView) view.findViewById(IMMAGINE);
view.setTag(cache);//collego view con cache
}
else
{
cache = (CacheRiga) view.getTag(); //altrimenti prendo la cache dalla view
}
cache.titolo.setText(titoli.get(pos)); //imposto il titolo
cache.descrizione.setText(descrizioni.get(pos));
// if(pos>0)
//{
cache.img.setImageResource(immagini[pos]);
//}
// e la descrizione
return view;
}
private class CacheRiga { // classe per la cache delle righe
public TextView titolo; // cache titolo
public TextView descrizione; // cache descrizione
public ImageView img;
}
初期化:
ArrayList<String> titoli; //lista dei titoli
ArrayList<String> descrizioni; //lista delle descrizioni
// ArrayList<Integer> immagini;
int [] immagini;
titoli = new ArrayList<String>();
descrizioni = new ArrayList<String>();
//immagini = new ArrayList<Integer>();
immagini = new int[500];