私は動作するアプリケーションを持っています。ViewPagerを使用するために変更したいと思います。つまり、新しいアクティビティを定義したので、 ViewPagerを使用してアクティビティ間をスワイプしたいと考えています。これを行うために、元のアクティビティをフラグメントに変換しました。これは元の(簡略化された)コードです
public class ListViewImagesActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList<Fish> image_details = populateList();
final ListView lv1 = (ListView) findViewById(R.id.listV_main);
final ItemListBaseAdapter ilba = new ItemListBaseAdapter(this, image_details);
lv1.setAdapter(ilba);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
Fish obj_itemDetails = (Fish) o;
Intent intent = new Intent(ListViewImagesActivity.this, DisplayFishDetailActivity.class);
startActivity(intent);
}
});
}
}
以下のようにコードを修正しました。
import android.support.v4.app.Fragment;
public class ListViewImagesActivity extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstancesState) {
return inflater.inflate(R.layout.activity_display_fish_detail, container, false);
}
@Override
public void onStart() {
super.onStart();
ArrayList<Fish> image_details = populateList();
final ListView lv1 = (ListView) getView().findViewById(R.id.pager);
final ItemListBaseAdapter ilba = new ItemListBaseAdapter(getActivity(), image_details);
lv1.setAdapter(ilba);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
Fish obj_itemDetails = (Fish) o;
Intent intent = new Intent(getActivity(), DisplayFishDetailActivity.class);
startActivity(intent);
}
});
}
現在、アダプターItemListBaseAdapterは、これを使用する代わりにgetActivity()を使用してコンテキストを受け取ります (実際、これが正しいかどうかはわかりません)。アプリケーションを実行すると、 lv1.setAdapter(ilba)でNull Pointer Exceptionが発生します。
ヒントはありますか?
前もって感謝します