-5

現在、私は3つのアレイを持っています。私は数時間試しています。この関数を動的な方法で実装できますか? 私にとって For ループは機能しませんでした。これを動的に実装する方法はありますか。皆さんがこれを解決するのを手伝ってくれたら、私はうれしいです。

 switch(pageNumber){
            case 0:
                final ListView list1 = (ListView)rootView.findViewById(R.id.list);
                BinderData bindingData = new BinderData(this.getActivity(), d[0]);
                list1.setAdapter(bindingData);
                list1.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                        if (d[0].get(position).getItemType() == 0
                                || d[0].get(position).getItemType() == 3
                                || d[0].get(position).getItemType() == 2)
                            return;
                        Intent intent = new Intent(Schedule.this.getActivity(),
                                ContentExtended.class);
                        intent.putExtra("title", d[0].get(position).getTitle());
                        intent.putExtra("content", d[0].get(position).getContent());
                        startActivity(intent);
                    }
                });
                break;
            case 1:
                final ListView list2 = (ListView)rootView.findViewById(R.id.list);
                BinderData bindingData1 = new BinderData(this.getActivity(), d[1]);
                list2.setAdapter(bindingData1);
                list2.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                        if (d[1].get(position).getItemType() == 0
                                || d[1].get(position).getItemType() == 3
                                || d[1].get(position).getItemType() == 2)
                            return;
                        Intent intent = new Intent(Schedule.this.getActivity(),
                                ContentExtended.class);
                        intent.putExtra("title", d[1].get(position).getTitle());
                        intent.putExtra("content", d[1].get(position).getContent());
                        startActivity(intent);
                    }
                });
                break;
            case 2:
                final ListView list3 = (ListView)rootView.findViewById(R.id.list);
                BinderData bindingData2 = new BinderData(this.getActivity(), d[2]);
                list3.setAdapter(bindingData2);
                list3.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                        if (d[2].get(position).getItemType() == 0
                                || d[2].get(position).getItemType() == 3
                                || d[2].get(position).getItemType() == 2)
                            return;
                        Intent intent = new Intent(Schedule.this.getActivity(),
                                ContentExtended.class);
                        intent.putExtra("title", d[2].get(position).getTitle());
                        intent.putExtra("content", d[2].get(position).getContent());
                        startActivity(intent);
                    }
                });
                break;

        }
4

3 に答える 3

0

onClick チェックは pageNumber にあります。それぞれのケースで、配列 d のインデックスのみが異なります。onClick メソッドでこれを試してください:

       final ListView list1 = (ListView)rootView.findViewById(R.id.list);
        BinderData bindingData = new BinderData(this.getActivity(), d[pageNumber]);
        list1.setAdapter(bindingData);
        list1.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                if (d[0].get(position).getItemType() == 0
                        || d[pageNumber].get(position).getItemType() == 3
                        || d[pageNumber].get(position).getItemType() == 2)
                    return;
                Intent intent = new Intent(Schedule.this.getActivity(),
                        ContentExtended.class);
                intent.putExtra("title", d[pageNumber].get(position).getTitle());
                intent.putExtra("content", d[pageNumber].get(position).getContent());
                startActivity(intent);
            }
        });
于 2013-06-27T09:16:50.077 に答える