1

編集:私はそれを理解しました、ありがとう

私は今、ViewPagerの各ページに個別のListViewを実装しようと永遠に努力してきました。このチュートリアルはかなりよく理解していますが、各ページに使用されるListViewは1つしか作成されません。

各ページに複数のListViewを設定できるようにしたいのですが、そこから各ページのListViewのonClickで何が発生するかを制御できます。私のアプリは(チュートリアルのように)1つのListViewで動作していますが、複数のListViewでひどく苦労しています。

私のコードは以下に掲載されており、さまざまなことを試しましたが、開発を進める必要があります。助けてくれてありがとう

private static class MyAdapter extends FragmentPagerAdapter implements
        TitleProvider {

    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return ArrayListFragment.newInstance(position);
    }

    @Override
    public int getCount() {
        return Arrays.TITLES.length;
    }

    public String getTitle(int position) {
        return Arrays.TITLES[position];
    }

}

public static class ArrayListFragment extends ListFragment {
    int mNum;

    /**
     * Create a new instance of CountingFragment, providing "num" as an
     * argument.
     */
    static ArrayListFragment newInstance(int num) {
        ArrayListFragment f = new ArrayListFragment();

        // Supply num input as an argument.
        Bundle args = new Bundle();
        args.putInt("num", num);
        f.setArguments(args);

        return f;
    }

    /**
     * When creating, retrieve this instance's number from its arguments.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mNum = getArguments() != null ? getArguments().getInt("num") : 1;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.list_layout, container, false);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, Arrays.accTEAMS));
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        Log.i("FragmentList", "Item clicked: " + id);
    }
}

これは私のListFragmentsの1つです:

public class ACCfragment extends ListFragment {
View v;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.list_layout, null);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_list_item_1, Arrays.accTEAMS);
    setListAdapter(adapter);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

}
4

2 に答える 2

0

これを試して...

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Log.i("FragmentList", "Item clicked: " + id);
    switch(mNum){
       case 1:
        //do what you want for first page
        Log.i("FragmentList", "Page 1: Item clicked: " + id);
        break;
       case 2:
       //do what you want for second page;
       Log.i("FragmentList", "Page 2: Item clicked: " + id);
       break;
       default:
       //default case;
       break;
   }
}
于 2012-04-12T00:54:29.590 に答える
0

フラグメント間でパラメーターを送信するには、バンドルを使用する必要があります。

Fragment1 からの送信:

Bundle args = new Bundle();
args.putInt("my_integer",_stationId);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
Fragment fragment = Fragment.instantiate(getActivity(), Fragment2.class.getName(), args);
ft.replace(R.id.layout, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();

Fragment2 の受信と取得:

getArguments().getInt("my_integer")
于 2012-04-12T10:19:12.603 に答える