Java 动态实现switch语句

Java 动态实现switch语句,java,android,Java,Android,目前,我有3个阵列。我试了几个小时。我能否以任何动态方式实现此功能。对我来说,For循环不起作用。是否有任何方法可以动态实现这一点。如果你们能帮我解决这个问题,我会很高兴的 switch(pageNumber){ case 0: final ListView list1 = (ListView)rootView.findViewById(R.id.list); BinderData bindingData

目前,我有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;

        }
开关(页码){
案例0:
最终ListView list1=(ListView)rootView.findViewById(R.id.list);
BinderData bindingData=新的BinderData(this.getActivity(),d[0]);
列表1.setAdapter(bindingData);
list1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
if(d[0].get(position).getItemType()==0
||d[0]。get(位置)。getItemType()==3
||d[0]。get(位置)。getItemType()==2)
回来
意向意向=新意向(Schedule.this.getActivity(),
内容扩展类);
intent.putExtra(“title”,d[0].get(position.getTitle());
intent.putExtra(“content”,d[0]。get(position.getContent());
星触觉(意向);
}
});
打破
案例1:
最终ListView list2=(ListView)rootView.findViewById(R.id.list);
BinderData bindingData1=新的BinderData(this.getActivity(),d[1]);
列表2.setAdapter(bindingData1);
list2.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
if(d[1].get(position).getItemType()==0
||d[1]。get(位置)。getItemType()==3
||d[1]。get(位置)。getItemType()==2)
回来
意向意向=新意向(Schedule.this.getActivity(),
内容扩展类);
intent.putExtra(“title”,d[1].get(position.getTitle());
intent.putExtra(“content”,d[1].get(position.getContent());
星触觉(意向);
}
});
打破
案例2:
最终ListView list3=(ListView)rootView.findViewById(R.id.list);
BinderData bindingData2=新的BinderData(this.getActivity(),d[2]);
list3.setAdapter(bindingData2);
list3.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
if(d[2].get(position).getItemType()==0
||d[2]。get(位置)。getItemType()==3
||d[2].获取(位置).getItemType()==2)
回来
意向意向=新意向(Schedule.this.getActivity(),
内容扩展类);
intent.putExtra(“title”,d[2].get(position.getTitle());
intent.putExtra(“content”,d[2].get(position.getContent());
星触觉(意向);
}
});
打破
}

在我看来,除了
d
数组的索引之外,整个代码都是复制的。所以,它会是这样的:

public void method(int pageNumber) {
     final ListView list = (ListView)rootView.findViewById(R.id.list);
     BinderData bindingData = new BinderData(this.getActivity(), d[pageNumber]);
     list.setAdapter(bindingData);
     list.setOnItemClickListener(new OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> a, View v, int position, long id) {
             if (d[pageNumber].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);
         }
     });
}
public void方法(int页码){
最终ListView列表=(ListView)rootView.findViewById(R.id.list);
BinderData bindingData=新的BinderData(this.getActivity(),d[pageNumber]);
list.setAdapter(bindingData);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
如果(d[pageNumber].get(position).getItemType()=0
||d[pageNumber].get(位置).getItemType()==3
||d[pageNumber].get(位置).getItemType()==2)
回来
意向意向=新意向(Schedule.this.getActivity(),
内容扩展类);
intent.putExtra(“title”,d[pageNumber].get(position.getTitle());
intent.putExtra(“content”,d[pageNumber].get(position.getContent());
星触觉(意向);
}
});
}

onClick check在我看到的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);
            }
        });
final ListView list1=(ListView)rootView.findViewById(R.id.list);
BinderData bindingData=新的BinderData(this.getActivity(),d[pageNumber]);
列表1.setAdapter(bindingData);
list1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
if(d[0].get(position).getItemType()==0
||d[pageNumber].get(位置).getItemType()==3
||d[pageNumber].get(位置).getItemType()==2)
回来
意向意向=新意向(Schedule.this.getActivity(),
内容扩展类);
intent.putExtra(“title”,d[pageNumber].get(position.getTitle());
intent.putExtra(“content”,d[pageNumber].get(position.getContent());
星触觉(意向);
}
});

您不能使用for
循环
进行切换。如果,则可以使用
。正如我所看到的,您的代码在每种情况下仅在数组d索引中有所不同。所以哟
public void onClick(int pageNumber) { 
 //your implementaion
}