次のようなListFragmentを呼び出すPagerアダプタがあります。
public Fragment getItem(int position) {
Fragment fragment = new ListViewFragment();
// set arguments here, if required
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
次に、ListViewFragmentに変更したいListActivityがあります。
public class ImageListActivity extends ListActivity implements RadioGroup.OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imagelist);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(this);
setListAdapter(new ImageAdapter());
}
public void onCheckedChanged(RadioGroup group, int checkedId) {
ImageDownloader.Mode mode = ImageDownloader.Mode.NO_ASYNC_TASK;
if (checkedId == R.id.correctButton) {
mode = ImageDownloader.Mode.CORRECT;
}else if (checkedId == R.id.randomButton) {
mode = ImageDownloader.Mode.NO_DOWNLOADED_DRAWABLE;
}
((ImageAdapter) getListAdapter()).getImageDownloader().setMode(mode);
}
}
しかし、私は本当にそれを機能させることができません..私はそれを試しました:
public class ListViewFragment extends ListFragment {
int mNum;
Context ctx;
View v;
static int p;
/**
* Create a new instance of CountingFragment, providing "num"
* as an argument.
*/
static ListFragment newInstance(int num) {
ListFragment f = new ListFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.imagelist, container, false);
ImageDownloader.Mode mode = ImageDownloader.Mode.NO_ASYNC_TASK;
mode = ImageDownloader.Mode.CORRECT;
((ImageAdapter) getListAdapter()).getImageDownloader().setMode(mode);
setListAdapter(new ImageAdapter());
return container;
}
}
更新: -私は自分の質問に答えるだけで、サンプルからプロジェクトにListAdapterを実装する方法を初心者に説明するための小さなチュートリアルを作成します。
サンプルからこのListAdapterを取得しました。ファイルをプロジェクトにコピーするだけで、実行するとクラッシュします。
だから、あなたは私の答えに従い、ListArrayAdapter
インターネットで見つけたものを何でも変更して実装する必要があります。