Java 用于多个setOnClickListener的Android If语句
我有多个setOnClickListener,我想做的是使它更简单 这是我的javaJava 用于多个setOnClickListener的Android If语句,java,android,imageview,Java,Android,Imageview,我有多个setOnClickListener,我想做的是使它更简单 这是我的java @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); // get the button view ImageView foodImg
@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使用了开关盒,用于
onClick(…)
的类似操作
public void onClick(View v) {
switch (v.getId()) {
case R.id.iconFoods:
//do your Intent
break;
case R.id.iconBars:
//do your Intent
break;
case R.id.iconRooms:
break;
case R.id.iconWellness:
//do your Intent
break;
case R.id.iconBeaches:
//do your Intent
break;
and so on....
}
}
但为此,您的活动
或片段
必须扩展onClickListener
接口
public class MyFragment extends Fragment implements OnClickListener {
您可以将此侦听器设置为您的图像视图
,如下所示:
foodImg.setonClickListner(this);
roomsImg.setonClickListner(this);
...and so on
将同一侦听器分配给所有视图
foodImg.setOnClickListener(this);
然后在片段中实现侦听器接口
public class MyFragment extends Fragment implements OnClickListener {
并将onClick()
方法添加到片段中:
public void onClick(View v) {
switch (v.getId())
{
case R.id.iconBars:
// handle the click
break;
case R.id.iconMuseum:
// handle the click
break;
// add all the other cases here
}
}
创建一个公共onclick侦听器
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
switch(v.getId()){
case R.id.button1:
((TextView) getView().findViewById(R.id.textView1)).setText("Button 1 pushed");
break;
case R.id.button2:
((TextView) getView().findViewById(R.id.textView1)).setText("Button 2 pushed");
break;
case R.id.button3:
((TextView) getView().findViewById(R.id.textView1)).setText("Button 3 pushed");
break;
}
}
};
然后将每个视图设置为使用该单击侦听器,即:
Button btn1 = (Button) getView().findViewById(R.id.button1);
Button btn2 = (Button) getView().findViewById(R.id.button2);
Button btn3 = (Button) getView().findViewById(R.id.button3);
btn1.setOnClickListener(onClickListener);
btn2.setOnClickListener(onClickListener);
btn3.setOnClickListener(onClickListener);
希望有帮助。将OnClickListener应用到您的活动中,如下所示:-
public class MyActivity extends Activity implements OnClickListener
在实现它之后,它会要求您添加umimplemented方法,然后在该方法上您可以使用switch case,如下所示
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.foodImg :
break;
default:
break;
}
}
不要忘记为所有视图指定同一个侦听器
foodImg.setOnClickListener(this);
为此,您可以创建一个方法并在OnCreate方法上调用它
private void registrerListeners() {
foodImg.setOnClickListener(this);
//rly add rest oncliclisterner of your image
}
阅读