ANDROID:如何一次只选择一个ImageView?

ANDROID:如何一次只选择一个ImageView?,android,imageview,Android,Imageview,我将四个ImageView设置为菜单。 在四个菜单项中,我一次只想选择一个 我为一个菜单项设置了2个图像,比如1个来自selected,另外3个来自Unselected 我在这里发布了代码: footer.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout

我将四个
ImageView
设置为菜单。 在四个菜单项中,我一次只想选择一个

我为一个菜单项设置了2个图像,比如1个来自selected,另外3个来自Unselected

我在这里发布了代码:

footer.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="#f1eeee"
    android:orientation="horizontal">
<ImageView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/fHome"
    android:src="@drawable/home" />  <!-- your image here -->

<ImageView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/fAttendence"
    android:src="@drawable/home" />

<ImageView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/home"
    android:src="@drawable/target" />
<ImageView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/home"
    android:src="@drawable/report" />
   <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.sachin.colorchanged.MainActivity">
<include
    layout="@layout/footer"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    android:id="@+id/include2" />
 </RelativeLayout>
[]

[]


请帮我解决这个问题,并向我推荐一个例子。

首先让您的类实现
视图。OnClickListener
如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener 
然后执行界面的
onClick
方法:

@Override
public void OnClick(View v)
现在,在您的
OnClick
方法中,首先加载图像的所有默认图像,如:

  mHomeButton.setImageResource(R.drawable.home);
  mattendence.setImageResource(R.drawable.home); // and other imageViews
然后在onClick方法中定义一个
开关
案例为:

switch (v.getId()){
  case R.id.fHome:
     mHomeButton.setImageResource(R.drawable.blue);
     break;
  // define same as all other views
}
最终代码为:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    ImageView mHomeButton,mattendence,mTarget,mReport;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mHomeButton = (ImageView) findViewById(R.id.fHome);
        mattendence = (ImageView) findViewById(R.id.fAttendence);
        mTarget= (ImageView) findViewById(R.id.fTarget);
        mReport = (ImageView) findViewById(R.id.fReport);

       mHomeButton.setOnClickListener(this);
       mattendence.setOnClickListener(this);
       mTarget.setOnClickListener(this);
       mReport.setOnClickListener(this);
    }

    @Override
    public void OnClick(View v){
        mHomeButton.setImageResource(R.drawable.home);
        mattendence.setImageResource(R.drawable.home);
        mTarget.setImageResource(R.drawable.home);
        mReport.setImageResource(R.drawable.home);
        int selected = 0;
        Intent intent = new Intent(this,YOURACTIVITY.class);


        switch(v.getId()){

        case R.id.fHome:
            mHomeButton.setImageResource(R.drawable.blue);
            selected = 1;
            break;

        case R.id.mTarget:
            mTarget.setImageResource(R.drawable.blue);
            selected = 2;
            break;

        case R.id.fAttendence:
            mattendence.setImageResource(R.drawable.blue);
            selected = 3;
            break;


        case R.id.mReport:
            mReport.setImageResource(R.drawable.blue);
             selected = 4;
            break;


      } 
      intent.putExtra("selected",selected);
      startActivity(intent);  
}
然后在其他活动中,您必须检查选择了哪个imageView:

int selected = getIntent().getIntExtra("selected",0);
   switch(int){
   case 1:
     mHomeButton.setImageResource(R.drawable.blue);
     break;
   case 2 ... and so on
    }

首先,让您的类实现
View.OnClickListener
as:

public class MainActivity extends AppCompatActivity implements View.OnClickListener 
然后执行界面的
onClick
方法:

@Override
public void OnClick(View v)
现在,在您的
OnClick
方法中,首先加载图像的所有默认图像,如:

  mHomeButton.setImageResource(R.drawable.home);
  mattendence.setImageResource(R.drawable.home); // and other imageViews
然后在onClick方法中定义一个
开关
案例为:

switch (v.getId()){
  case R.id.fHome:
     mHomeButton.setImageResource(R.drawable.blue);
     break;
  // define same as all other views
}
最终代码为:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    ImageView mHomeButton,mattendence,mTarget,mReport;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mHomeButton = (ImageView) findViewById(R.id.fHome);
        mattendence = (ImageView) findViewById(R.id.fAttendence);
        mTarget= (ImageView) findViewById(R.id.fTarget);
        mReport = (ImageView) findViewById(R.id.fReport);

       mHomeButton.setOnClickListener(this);
       mattendence.setOnClickListener(this);
       mTarget.setOnClickListener(this);
       mReport.setOnClickListener(this);
    }

    @Override
    public void OnClick(View v){
        mHomeButton.setImageResource(R.drawable.home);
        mattendence.setImageResource(R.drawable.home);
        mTarget.setImageResource(R.drawable.home);
        mReport.setImageResource(R.drawable.home);
        int selected = 0;
        Intent intent = new Intent(this,YOURACTIVITY.class);


        switch(v.getId()){

        case R.id.fHome:
            mHomeButton.setImageResource(R.drawable.blue);
            selected = 1;
            break;

        case R.id.mTarget:
            mTarget.setImageResource(R.drawable.blue);
            selected = 2;
            break;

        case R.id.fAttendence:
            mattendence.setImageResource(R.drawable.blue);
            selected = 3;
            break;


        case R.id.mReport:
            mReport.setImageResource(R.drawable.blue);
             selected = 4;
            break;


      } 
      intent.putExtra("selected",selected);
      startActivity(intent);  
}
然后在其他活动中,您必须检查选择了哪个imageView:

int selected = getIntent().getIntExtra("selected",0);
   switch(int){
   case 1:
     mHomeButton.setImageResource(R.drawable.blue);
     break;
   case 2 ... and so on
    }


你什么时候能选择其他的图片选项?@Rahul Sharma当我跳到下一个时page@RahulSharma你在ios应用程序中看到Facebook的方式与我想在我的应用程序中使用的方式完全相同,点击每个imageview,你就会移动到下一个屏幕。对吗?@Rahulharma Excatlyan您什么时候可以选择其他图像选项?@Rahul Sharma当我跳到下一个时page@RahulSharma你在ios应用程序中看到Facebook的方式与我想在我的应用程序中使用的方式完全相同,点击每个imageview,你就会移动到下一个屏幕。是吗?@RahulSharmaExcatly@Sanoop当我移动到下一个屏幕时,颜色只会保持灰色。@SachinSolanki不是回答的人。。LOL@Sanoop沃凯。。。你对此有什么想法吗???@SachinSolanki我不知道你在下一个活动中如何使用相同的布局。@M.Waqas Pervez我创建了一个xml文件作为footer.xml,在每一个活动中,当我移动到下一个屏幕时,我使用@Sanoop调用该文件,颜色仅保持灰色。@SachinSolanki不是回答的人。。LOL@Sanoop沃凯。。。你对此有什么想法吗???@SachinSolanki我不知道你在下一个活动中如何使用相同的布局。@M.Waqas Pervez我创建了一个xml文件作为footer.xml,在每个活动中我都使用