Android 如何获取和传递按钮的值

Android 如何获取和传递按钮的值,android,Android,我想知道如何获得按钮的值,然后在另一个活动中使用它来相应地显示内容 例如: 在我的主要活动中有3个按钮Image1、Image2和Image3 现在,根据用户单击Image1、Image2和Image3的按钮,相应的图像将显示在新活动上 我知道如何创建这些按钮、新活动以及如何在新活动上显示图像。如何根据用户单击的按钮显示图像?您只需为每个按钮实现一个ClickListener,它将启动相应的活动。请参见一个示例。您的类应该实现OnClickListener并重写onClick Button bu

我想知道如何获得按钮的值,然后在另一个活动中使用它来相应地显示内容

例如:

在我的主要活动中有3个按钮Image1、Image2和Image3

现在,根据用户单击Image1、Image2和Image3的按钮,相应的图像将显示在新活动上


我知道如何创建这些按钮、新活动以及如何在新活动上显示图像。如何根据用户单击的按钮显示图像?

您只需为每个按钮实现一个ClickListener,它将启动相应的活动。请参见一个示例。

您的类应该实现OnClickListener并重写onClick

Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
button1.setOnClickListener(new OnClickListener(this));
button2.setOnClickListener(new OnClickListener(this));
button3.setOnClickListener(new OnClickListener(this));


 @Override
 public void onClick(View v){

switch(v.getId()) //get the id which is an int
    {
     case R.id.button1 : //if its button1 that is clicked
         Intent i= new Intent("com.example.secondActivity");
         i.puExtra("key",value);
         startActivity(i);
        // use intents to pass information to secondActivity and display the image there
      break;
      case R.id.button2 :
         Intent i= new Intent("com.example.secondActivity");
         startActivity(i)
         //use intents to pass information to secondActivity and display the image there
      break;
      case R.id.button3 :
          Intent i= new Intent("com.example.secondActivityy");
          startActivity(i)
          //use intents to pass information to secondActivity and display the image there
      break;
    }
 }
使用意图传递值

点击按钮

         Intent i= new Intent("com.example.secondActivity");
         i.puExtra("key",value);
         startActivity(i);
在第二个活动中,按如下方式检索它

         Bundle extras = getIntent().getExtras();
        if(extras!=null)
        {
         int values= extras.getInt("key");
        }
为什么不使用开关盒来确定用户单击了哪个按钮,并在下一个活动中显示相应的/相关的图像?例如:

 Intent intent= new Intent(CurrentClass.this, ImageActivity.class);
  intent.putExtra("ImageURL",strImageURL);
  startActivity(i);
首先,让您的活动实现OnClickListener。然后,在onCreate中投射按钮并设置其setOnClickListener

我假设您正在传递一个包,以便开始下一个活动。更改该代码以传递包含按下哪个按钮的信息

例如: Intent showPhoto=新的IntentCurrentActivity.this,您的第二个活动.class; showPhoto.putExtraBUTTON_单击,图像1; 星光照片

@Override
public void onClick(View v) {
    // Perform action on click
    switch(v.getId()) {
    case R.id.Image1:
        // RUN THE CODE TO START THE NEXT ACTIVITY
        Intent showPhoto = new Intent(CurrentActivity.this, YOUR_SECOND_ACTIVITY.class);
        showPhoto.putExtra("BUTTON_CLICKED", "IMAGE1");
        startActivity(showPhoto);

        break;
    case R.id.Image2:
        // RUN THE CODE TO START THE NEXT ACTIVITY
        Intent showPhoto = new Intent(CurrentActivity.this, YOUR_SECOND_ACTIVITY.class);
        showPhoto.putExtra("BUTTON_CLICKED", "IMAGE2");
        startActivity(showPhoto);

        break;
    case R.id.Image3:
        // RUN THE CODE TO START THE NEXT ACTIVITY
        Intent showPhoto = new Intent(CurrentActivity.this, YOUR_SECOND_ACTIVITY.class);
        showPhoto.putExtra("BUTTON_CLICKED", "IMAGE3");
        startActivity(showPhoto);

        break;
    }

    }
}
在我的主要活动中有3个按钮Image1、Image2和Image3。基于现在 用户在哪个按钮上单击Image1、Image2和Image3、a 相应的图像将显示在新活动上

=>正如您所说,您知道如何创建按钮并启动它

现在,您只需要将OnClickListener分配给每个按钮,然后将图像id或URL传递到调用新活动的意图中

检查上面@IceMAN发布的代码,正如我前面提到的,使用putExtra方法将ImageURL或ImageID放入Intent中

例如:

 Intent intent= new Intent(CurrentClass.this, ImageActivity.class);
  intent.putExtra("ImageURL",strImageURL);
  startActivity(i);
例如,主布局中有3个按钮和ImageView:

Main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

<Button
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:id="@+id/btn1"
        android:text="button 1"
        />
<Button
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:id="@+id/btn2"
        android:text="button 2"
        />
<Button
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:id="@+id/btn3"
        android:text="button 3"
        />

<ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/iv"
        />
}

其中my_image_1、my_image_2、my_image_3-图像,来自您的可绘制文件夹。
希望有帮助。

在创建包含3个按钮的“活动”时添加此选项

        Button image1 = (Button) findViewById(R.id.image1);
        image1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), DisplayImagActivity.class)
                .putExtra("ImageName", "Image1"));
            }
        });

        Button image2 = (Button) findViewById(R.id.image2);
        image2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), DisplayImagActivity.class)
                .putExtra("ImageName", "Image2"));
            }
        });

        Button image3 = (Button) findViewById(R.id.image3);
        image3.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), DisplayImagActivity.class)
                .putExtra("ImageName", "Image3"));
            }
        });

在创建活动时将此添加到要设置图像的位置:

        String imageName = getIntent().getStringExtra("ImageName");
        if(imageName.equals("Image1")) {
            //set image 1
        }
        else if(imageName.equals("Image2")) {
            //set image 2
        }
        else if(imageName.equals("Image3")) {
            //set image 3
        }

我知道这是一个古老的问题,但我更喜欢另一种方法,因为您可以对所有按钮使用相同的默认方法

首先为每个按钮添加一个标记

 <Button
    android:id="@+id/imageOneButton"
    android:tag="1"
    android:onClick="chooseImage" />

您的图像是否来自可绘制文件夹?是。图像位于drawable文件夹中。主活动应实现OnClickListener非常感谢您的帮助。但我仍然不明白该值是如何传递给secondActivity的?我最初的计划是传递一些整数值,如1,2or3,然后在第二个活动中使用“if else”来确定要显示的图像。您可以将图像的资源id传递给新活动。这是一个整数,您可以直接将该值设置为imageViewYup,您可以这样做。该值可以是资源id.R.drawable.myimage
 <Button
    android:id="@+id/imageOneButton"
    android:tag="1"
    android:onClick="chooseImage" />
 public void chooseImage(View view) {

    int imageNumber = Integer.parseInt(view.getTag().toString());

    // I'll just send this tag number to a toast, but you can send it in your intent
    // as an "Extra"

    Toast.makeText(this, view.getTag().toString(), Toast.LENGTH_SHORT).show();

}