【问题标题】:Using imageButtons to switch activities. How can I switch image in second activity based on button pressed?使用 imageButtons 切换活动。如何根据按下的按钮在第二个活动中切换图像?
【发布时间】:2015-05-15 06:39:17
【问题描述】:

我刚刚开始涉足 Android 开发。现在,我在 Android Studio 中有一个程序,它有两列图像,每列大约 6 张图像。我想这样做,所以如果我单击该图像,它将出现在新活动中。现在,我只是在加载这样的布局:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    String name = intent.getStringExtra(Main.CHAMPION_NAME);
    setContentView(R.layout.activity_champion_page);

}

setContentView 中的布局如下所示:

<LinearLayout 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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="atree496.leaguestats.ChampionPage">


    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/azir"
        android:id="@+id/imageView" />
</LinearLayout>

到目前为止,它只打开一张图片,因为它是这样设置的,但我希望能够让图片成为我点击的那一张。为了实现这一目标,我需要做哪些改变?再说一次,我对此很陌生。感谢您提供的任何帮助。

【问题讨论】:

    标签: java android android-layout android-activity android-studio


    【解决方案1】:

    如果将文件名赋予 xml 中的 Tag 属性,则可以将按下图像的 int 资源添加到 Intent 中:

    ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/azir"
    android:tag="theImageFileName.png"
    android:id="@+id/imageView" />
    

    然后您可以在按下时检索它并将其添加到您正在使用的 Intent 中:

     @Override
     public void onClick(View v) {
         String fileName = (String) v.getTag();
         Intent intent = new Intent(this, SecondActivity.class);
         intent.putExtra("fileName", fileName);
          startActivity(intent);
     }
    

    在初始化 secondImageView 后的第二个活动中:

    String fileName = getIntent().getStringExtra("fileName");
    int resId = getResources().getIdentifier(fileName,"drawable", getPackageName());
    secondImage.setImageDrawable(getResources().getDrawable(resId));
    

    【讨论】:

    • 感谢您的回复,我只是有一个关于最后一节的问题。你的意思是把它放在xml文件还是java文件中?
    • 看你的选择。我会把它放在没有 src 属性的 XML 中。如果我的回答对你有帮助,如果你能接受,我将不胜感激。
    • 我愿意,但我仍然无法让代码工作。 secondImage 是第二个 XML 中的 imageView 吗?这就是我的程序在使用中的样子。 imgur.com/a/ndZm5 如果我点击图片,我希望它出现在新活动中,所以有两个活动和两个 XML 文件。第二个活动只有一张图片。这就是为什么我对在最后一部分放在哪里感到困惑。首次在活动的 java 文件中分配该信息时,如何在 XML 文件中使用该信息?
    • 看,你在第二个 Activity 的 xml 中放入了你想要的小部件。如果你只想要 1 个 ImageView,那么放 1 个 ImageView 并使用我给你的代码来填充它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多