用于多个setOnClickListener的java Android If语句
我有多个setOnClickListener,我想做的是使它更简单
这是我的java
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
// get the button view
ImageView foodImg = (ImageView) getView().findViewById(R.id.iconFoods);
ImageView barsImg = (ImageView) getView().findViewById(R.id.iconBars);
ImageView roomsImg = (ImageView) getView().findViewById(R.id.iconRooms);
ImageView wellnessImg = (ImageView) getView().findViewById(R.id.iconWellness);
ImageView beachesImg = (ImageView) getView().findViewById(R.id.iconBeaches);
ImageView kidsImg = (ImageView) getView().findViewById(R.id.iconKids);
ImageView attractionsImg = (ImageView) getView().findViewById(R.id.iconAttractions);
ImageView shopsImg = (ImageView) getView().findViewById(R.id.iconShops);
ImageView museumsUmg = (ImageView) getView().findViewById(R.id.iconMuseum);
// set a onclick listener for when the food button gets clicked
foodImg.setOnClickListener(new OnClickListener() {
// Start new list activity
public void onClick(View v) {
Intent mainIntent = new Intent(getActivity(),
Food.class);
startActivity(mainIntent);
}
});
// set a onclick listener for when the bars button gets clicked
barsImg.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent mainIntent = new Intent(getActivity(),
Bars.class);
startActivity(mainIntent);
}
});
如您所见,我为每个ImageView创建了一个setOnClickListener。 我的问题是,如何对多个setOnClickListener使用if语句? 因此,当我单击ImageView Foods图标时,我会打开Foods活动。 谢谢你:D
# 1 楼答案
将同一侦听器分配给所有视图
然后在片段中实现侦听器接口
并将
onClick()
方法添加到片段中:# 2 楼答案
用于
onClick(...)
类中的开关格但是,为此,您的
Activity
或Fragment
必须扩展onClickListener
接口您将把这个
Listener
设置为您的ImageView
,如下所示:# 3 楼答案
将OnClickListener实现到您的活动中,如下所示:-
在实现它之后,它会要求您添加umimplemented方法,然后在该方法上您可以使用switch case,如下所示
不要忘记为所有视图指定同一个侦听器
为此,您可以创建一个方法并在OnCreate方法上调用它
# 4 楼答案
创建一个公共onclick侦听器
然后将每个视图设置为使用该单击侦听器,即:
希望能有帮助