Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对发送到活动的不同附加项执行不同的操作?_Java_Android_Class_Object_Android Activity - Fatal编程技术网

Java 如何对发送到活动的不同附加项执行不同的操作?

Java 如何对发送到活动的不同附加项执行不同的操作?,java,android,class,object,android-activity,Java,Android,Class,Object,Android Activity,我有一个活动,它显示一个对象的信息(TextView名称、ImageView图像等),我从两个不同的活动发送这些数据,而这些数据属于不同的类,但包含完全相同的属性,因此我始终可以使用相同的getter获取名称或图片。(这些对象基本上是相同的“类型”,但我需要创建两个不同的类,因为我使用的是领域数据库)。因此,在目标活动中,我需要找出已发送给它的类,然后为这些视图设置资源 这是我的尝试,我不知道它是否正确(因为应用程序在某些情况下会崩溃,不知道故障是在这里还是其他地方,所以我想弄清楚这是否正确)。

我有一个活动,它显示一个对象的信息(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

    }
希望这有帮助