Java 如何对发送到活动的不同附加项执行不同的操作?
我有一个活动,它显示一个对象的信息(TextView名称、ImageView图像等),我从两个不同的活动发送这些数据,而这些数据属于不同的类,但包含完全相同的属性,因此我始终可以使用相同的getter获取名称或图片。(这些对象基本上是相同的“类型”,但我需要创建两个不同的类,因为我使用的是领域数据库)。因此,在目标活动中,我需要找出已发送给它的类,然后为这些视图设置资源 这是我的尝试,我不知道它是否正确(因为应用程序在某些情况下会崩溃,不知道故障是在这里还是其他地方,所以我想弄清楚这是否正确)。这些类被称为幻觉和偏爱幻觉,它们都是可包裹的,因此可以通过附加发送。这是我的代码:Java 如何对发送到活动的不同附加项执行不同的操作?,java,android,class,object,android-activity,Java,Android,Class,Object,Android Activity,我有一个活动,它显示一个对象的信息(TextView名称、ImageView图像等),我从两个不同的活动发送这些数据,而这些数据属于不同的类,但包含完全相同的属性,因此我始终可以使用相同的getter获取名称或图片。(这些对象基本上是相同的“类型”,但我需要创建两个不同的类,因为我使用的是领域数据库)。因此,在目标活动中,我需要找出已发送给它的类,然后为这些视图设置资源 这是我的尝试,我不知道它是否正确(因为应用程序在某些情况下会崩溃,不知道故障是在这里还是其他地方,所以我想弄清楚这是否正确)。
final Object item = getIntent().getExtras().get("item");
if (item.getClass() == Illusion.class) {
Illusion illusion = (Illusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
} else if (item.getClass() == FavouriteIllusion.class) {
FavouriteIllusion illusion = (FavouriteIllusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
}
您只需将类名作为额外发送,然后应用到目标活动中的
if else
条件:
Intent i = new Intent(Illusion.this, TargetActivity.class);
i.putExtra("class","Illusion"); // Do as this in FavouriteIllusion
在目标活动中:
final Object item = getIntent().getExtras().get("item");
String getClass = getIntent().getStringExtra("class");
if (getClass.equals("Illusion")) {
Illusion illusion = (Illusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
} else if (getClass.equals("FavouriteIllusion") {
FavouriteIllusion illusion = (FavouriteIllusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
}
希望这能有所帮助。您只需将类名作为额外的发送,然后应用到目标活动中的
如果有其他情况
条件:
Intent i = new Intent(Illusion.this, TargetActivity.class);
i.putExtra("class","Illusion"); // Do as this in FavouriteIllusion
在目标活动中:
final Object item = getIntent().getExtras().get("item");
String getClass = getIntent().getStringExtra("class");
if (getClass.equals("Illusion")) {
Illusion illusion = (Illusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
} else if (getClass.equals("FavouriteIllusion") {
FavouriteIllusion illusion = (FavouriteIllusion) item;
TextView title = (TextView) findViewById(R.id.tv_title);
title.setText(illusion.getName());
//some more resource settings here
}
希望这有帮助