要从一个活动导航到另一个活动,在 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);
}
});
}
}
现在是您希望显示图像的第二个 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_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()方法的第一个参数是第一个key,第二个是value。
最好将键声明为常量。