获取intent类加载器。我想在secondActivity中将textView文本设置为firstActivity的名称(实际上我需要类加载器名称)

时间:2016-08-18 18:06:18

标签: android android-intent classloader

通过意图从活动转到另一个活动,我如何获得类加载器名称? 我需要类加载器的名称。 如果我的意图不明确,请查看此代码。

我为这个问题创建了一个测试应用程序。它有三个活动。 ActivityA,ActivityB和ActivityC。我在ActivityA和ActivityB中有一个启动activityC的按钮。

ActivityA:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_a);

        Button btnGoFromActivityAToActivityC = (Button) findViewById(R.id.btnGoFromActivityAToActivityC);

        btnGoFromActivityAToActivityC.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(ActivityA.this, ActivityC.class);
                startActivity(intent);

            }
        });
    }

ActivityB:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_b);

        Button btnGoFromActivityBToActivityC = (Button) findViewById(R.id.btnGoFromActivityBToActivityC);

        btnGoFromActivityBToActivityC.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(ActivityB.this, ActivityC.class);
                startActivity(intent);

            }
        });
    }

ActivityC:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_c);

        TextView textViewNameOfFirstActivity = (TextView) findViewById(R.id.textViewNameOfFirstActivity);

   if (/*  if we came from ActivityA  */)
   {
       textViewNameOfFirstActivity.setText("You came from ActivityA");
   }

   else if (/*  if we came from ActivityB  */)
   {
       textViewNameOfFirstActivity.setText("You came from ActivityB");
   }
    }

看看ActivityC ......

我该怎么做?

1 个答案:

答案 0 :(得分:2)

ClassLoader并不会告诉您加载Activity的内容;这是loading Classes

更好的方法是向Activity C发送某种信息,告诉谁打开它。 e.g。

活动A:

Intent intent = new Intent(ActivityA.this, ActivityC.class);
intent.putExtra("from", "Activity A");
startActivity(intent);

然后在onCreate(Bundle)的{​​{1}}方法中,您将获得该值:

Activity C