Android 我在activity_A中几乎没有imageview,当我单击activity_A中的图像时,它应该在activity_B中打开吗?
先生/女士/朋友们: 我是android程序的新手,我在这个活动中创建了一个线性布局,我放置了20个图像,当我单击一个图像时,特定的图像将在另一个活动中打开,在第二个活动中,我只放置了一个图像视图。那么请告诉我怎么做 我做了,但是我的程序每次只显示一个相同的图像Android 我在activity_A中几乎没有imageview,当我单击activity_A中的图像时,它应该在activity_B中打开吗?,android,Android,先生/女士/朋友们: 我是android程序的新手,我在这个活动中创建了一个线性布局,我放置了20个图像,当我单击一个图像时,特定的图像将在另一个活动中打开,在第二个活动中,我只放置了一个图像视图。那么请告诉我怎么做 我做了,但是我的程序每次只显示一个相同的图像 //this is the first activity. public class abcd extends ActionBarActivity{ public final static String VIEW_ID = "name
//this is the first activity.
public class abcd extends ActionBarActivity{
public final static String VIEW_ID = "name";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.abcd);
}
public void click(View view)
{
String iname=getResources().getResourceEntryName(view.getId());
Intent intent=new Intent(this,abcd_disp.class);
intent.putExtra("VIEW_ID", x);
startActivity(intent);
}
}
//这是第二项活动
public class abcd_disp extends ActionBarActivity {
ImageView imageView;
int[] im=new int[]{
R.mipmap.a,R.mipmap.b
};
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent=getIntent();
String vidname=(String)intent.getStringExtra(abcd.VIEW_ID);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_abcd_disp);
if(vidname=="aa"){
imageView=(ImageView)findViewById(R.id.img_abcd_disp);
imageView.setImageResource(im[0]);
}
else
{
imageView=(ImageView)findViewById(R.id.img_abcd_disp);
imageView.setImageResource(im[1]);
}
}
最简单的方法是: 假设您在drawable文件夹中有一组图像,您正在使用这些图像填充活动a中的ImageView 让图像为@drawable/image1、@drawable/image2、@drawable/image3、@drawable/image4 因此,一旦单击特定的ImageView,就可以按如下方式检索图像资源名称
imageView.getTag()代码>
但这会返回一个对象。所以键入cast将其转换为String。这样做是为了将其与意图一起传递,因为在不序列化或打包的情况下无法直接传递对象
String imageResourceName = (String)imageView.getTag();
一旦你有了这个,把它和你想要开始的意图一起传递给startActivity()
因此,在活动B中有ImageView的地方,可以使用
setTag(getIntent().getStringExtra(“资源名称”)
使用片段而不是活动
intent.putExtra("resource_name", imageResourceName);
startActivity(intent);