以下のコードでは、ArrayAdapter コンストラクターでArrayList ワードを使用するためにfor ブロックNullPointerException
を含めたときにを取得します。ただし、for ブロックを削除して、代わりにString 配列 strArrayを使用すると、問題なく動作します。
なぜそうなのか誰か教えてもらえますか?
import java.util.ArrayList;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import com.actionbarsherlock.app.SherlockListFragment;
public class ShowList extends SherlockListFragment
{
private static final String[] strArray={"this","one","is","an","experimental","list"};
ArrayList<String> words;
ArrayAdapter<String> adapter;
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
for(String s: strArray)
{
words.add(s);
}
adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,words);
Log.d("Action","before setListAdapter");
setListAdapter(adapter);
}
正常に動作するコードは次のとおりです。
public class ShowList extends SherlockListFragment
{
private static final String[] strArray={"this","one","is","an","experimental","list"};
ArrayList<String> words;
ArrayAdapter<String> adapter;
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
/* for(String s: strArray)
{
words.add(s);
}
*/
adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,strArray);
Log.d("Action","before setListAdapter");
setListAdapter(adapter);
}
}