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