Java 用于多个setOnClickListener的Android If语句

Java 用于多个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

我有多个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

使用了开关盒,用于
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
            }
阅读