java - 如何单击图像按钮并将其显示在 Android Studio 的新页面中?

标签 java android xml android-activity android-studio

我试图拥有一系列图像按钮,当单击其中一个时,它会将用户发送到包含该图像的不同页面。我可以在第一个屏幕上加载所有图像,但不知道如何让图像在单击后显示在第二个屏幕上。谁能帮我吗?

最佳答案

为了从一个 Activity 导航到另一个 Activity ,在 Android 中我们有 Intent 类。 我们还可以通过 Intent 将数据从一个 Activity 传递到另一个 Activity。

因此,基本上,您需要将 Intent 从主 Activity 发送到第二个 Activity ,以便第二个 Activity 出现。除了 Intent 之外,您还需要附加数据。本例中的数据是图像的文件名(资源名称)。

看看这段代码。

您的主要 Activity 有两个图像按钮。

public class mainActivity extends ActionBarActivity {

ImageButton imageButton1;
ImageButton imageButton2;

@Override
 void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 imageButton1 = (ImageButton)findViewById(R.id.ib1);
 imageButton2 = (ImageButton)findViewById(R.id.ib2);


 imageButton1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(getActivity(),SecondActivity.class);
        intent.putExtra("USE_A_CONSTANT_HERE_AS_KEY", R.drawable.img1);
        startActivity(intent);
    }
 });

imageButton2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(getActivity(),SecondActivity.class);
        intent.putExtra("USE_A_CONSTANT_HERE_AS_KEY", R.drawable.img2);
        startActivity(intent);
    }
  });
 }
}

现在是您想要显示图像的第二个 Activity。

public class SecondActivity extends ActionBarActivity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_second);

 ImageView imageView = (ImageView)findViewById(R.id.iv);
 int resourceId = getIntent.getIntentExtra("USE_A_CONSTANT_HERE_AS_KEY",R.drawable.ic_launcher)

 imageView.setImageResource(resourceId);
 } 
}

现在,第二个 Activity “activity_second”的 XML 布局文件是我为 xml 文件指定的名称。

<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">


<ImageView
android:id="@+id/iv"
android:layout_width="300dp"
android:layout_height="300dp"/>
</RelativeLayout>

现在澄清一下,getIntent.getIntExtra("USE_A_CONSTANT_HERE_AS_KEY",R.drawable.ic_launcher)

在 Intents 中使用 putExtra()getExtra() 方法的第一个参数首先是一个键,第二个是值。

将键声明为常量是件好事。

关于java - 如何单击图像按钮并将其显示在 Android Studio 的新页面中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055830/

相关文章:

Java:正则表达式模式不起作用

java - 使用 selenium.setSpeed() 时返回错误 "Multiple markers at this line - Syntax error on token "

java - 我们如何使用 SimpleCursorAdapter 将数据库中的 ID 用作 Listview ID?

c# - XDocument.Element 在解析 xml 字符串时返回 null

java - Java 任务管理器

java - 使用 Jsoup 和 Android Studio 截断网站

android - 使用编辑文本中提供的值设置日历类实例

php - 填充下拉选择列表

android - 如何删除出现在 XML Android 列表项之间的透明线

java - 动画结束时的两个 Action (setOnFinished)