1

私はに取り組んでいquiz applicationます。ここでは を使用しViewpager indicatorていますlistview with radio button

diffent values私の質問は、のすべてのページでリストビューを取得するにはどうすればよいですかviewpager

Google を試しましたが、解決策が見つかりません。私を助けてください。ありがとうございました

以下の画像を参照してください:

ここに画像の説明を入力 ここに画像の説明を入力

私のコードを確認してください:

 class PagerAdapter extends FragmentPagerAdapter implements SwipeyTabsAdapter{

    public final String[] list = new String[]
        {"Operating System", "Product Of Google", "Both Above", "None of above"}
; 

    private final Context mContext;

    public PagerAdapter(Context context, FragmentManager fm) {
        super(fm);

        this.mContext = context;
    }


    @Override
    public Fragment getItem(int pos) {

        return ItemFragment.newInstance(QUES[pos]);
        //return ItemFragment.newInstance(QUES[pos % TITLES.length]);

    }

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

    public TextView getTab(final int position, SwipeyTabs root) {
        TextView view = (TextView) LayoutInflater.from(mContext).inflate(
                R.layout.swipey_tab_indicator, root, false);
        view.setText(TITLES[position]);
        view.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                mViewPager.setCurrentItem(position);

            }
        });
        return view;
    }


}

public static class ItemFragment extends  Fragment{

    static ItemFragment newInstance(String title) {
        ItemFragment f = new ItemFragment();

        // Supply num input as an argument.
        Bundle args = new Bundle();

        args.putString("title",title);
        f.setArguments(args);

        System.out.println("value of the title : ================>"+title);
        return f;
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view_question, container, false);
        View tv = v.findViewById(R.id.text);
        final View listvw = v.findViewById(R.id.listview);

         final String title = getArguments().getString("title");
         ((TextView)tv).setText(title);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_single_choice, list);
        ((ListView) listvw).setAdapter(adapter);
        ((ListView) listvw).setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        return v;
    }

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


    }

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

        Log.i("FragmentList", "Item clicked: " + id);

    }
}
4

2 に答える 2

0

これを試してください:

まず、listvalue以下の表示に従って初期化します

/*public final String[] list = new String[]
    {"Operating System", "Product Of Google", "Both Above", "None of above"};*/


public static final String[] listArray = new String[]
        {
        "Operating System,Product Of Google,Both Above,None of above",
        "os,Google,Both,None",
        "Operating System,Product Of Google,Both Above,None of above",
        "os,Google,Both,None",
        "Operating System,Product Of Google,Both Above,None of above",
        "os,Google,Both,None",
        "Operating System,Product Of Google,Both Above,None of above",
        "os,Google,Both,None"};

パラメータを getItem listArray[pos]Likeに追加します。

@Override
    public Fragment getItem(int pos) {

        return ItemFragment.newInstance(QUES[pos],listArray[pos]);

    }

そして、 ItemFragment クラスに変更します Like :

static ItemFragment newInstance(String title,String arrayList) {
        ItemFragment f = new ItemFragment();

        // Supply num input as an argument.
        Bundle args = new Bundle();

        args.putString("title",title);
        args.putString("listvalues",arrayList);
        f.setArguments(args);

        return f;
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view_question, container, false);
        View tv = v.findViewById(R.id.text);

        final String title = getArguments().getString("title");
        final String  Listvalues = getArguments().getString("listvalues");


        String[] arr=Listvalues.split(",");

        System.out.println("Array :"+arr.length);
        for(int i=0;i<arr.length;i++)
        {

          //  System.out.println("array"+i+":========================>"+arr[i]);
        } 

         ((TextView)tv).setText(title);

        final View listvw = v.findViewById(R.id.listview);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_single_choice, arr);
        ((ListView) listvw).setAdapter(adapter);
        ((ListView) listvw).setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        return v;
    } 
于 2012-08-23T12:07:27.827 に答える
0

リストがあるすべての「ビュー」に ID を設定することをお勧めします。値を取得する場合は、0 からアダプタのサイズから 1 を引いた値までのすべての ID をループするだけで済みます。各反復でFULL VIEWを提供するため、その後、ビューの子を反復してチェックボックスを見つける必要があります。それが役に立てば幸い。

于 2012-08-22T18:33:26.630 に答える