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



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

要从一个活动导航到另一个活动,在 android 中我们Intent类。我们还可以通过 Intent .

因此,基本上,您需要将意图从主活动发送到第二个活动,以便显示第二个活动。除了意图,您还需要附加数据。本例中的数据是图像的文件名(资源名称)。

看看这段代码。

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

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);
    }
  });
 }
}

现在是要显示图像的第二个活动。

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_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() 方法的第一个参数首先是键,第二个参数是值。

最好将键声明为常量。

如果您像R.drawable.myimage这样的文件夹中将资源设置为drawable按钮,这就是您需要做的:

制定意图并输入图像的ID(按钮图像或您需要的内容)

imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent in = new Intent(getActivity(),Test.class);
            in.putExtra("id", R.drawable.google);
            startActivity(in);
        }
    });

测试活动类:在此类中,您缓存意图并通过意图中的图像"ID"创建 setImageResource。

public class Test extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    ImageView test = (ImageView)findViewById(R.id.iv_test);
    test.setImageResource(getIntent().getIntExtra("id",R.drawable.ic_launcher));
}

.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" 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="studio.linkup.com.animation_view.Test">
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/iv_test" />

最新更新