【问题标题】:Android: Creating a new instance of an intent/activityAndroid:创建意图/活动的新实例
【发布时间】:2012-01-04 15:20:56
【问题描述】:

我有一个小问题。

我正在尝试制作一个问题列表应用程序,因此当我按下下一个按钮时,我希望将新问题加载到 QuestionActivity 类中,并且当按下上一个按钮时,我希望上一个问题出现。

问题是当我按下按钮时,我无法弄清楚如何创建 QuestionActivity 的新实例。

ImageButton arrowLButton = (ImageButton) findViewById(R.id.arrowLButton);
    arrowLButton.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            if(pos >= 0)
            {
                Intent intent = new Intent(QuestionActivity.this, QuestionActivity.class);
                startActivity(intent);
                setPos(getPos() - 1);
                setQuestion();
            }
        }
    });

以上是按钮的操作。

提前谢谢..

【问题讨论】:

  • 您的代码似乎没问题,但您应该在开始新活动之前调用您的函数
  • 当我在最初(或之后)调用函数时,它会更改为下一个问题,但直接切换回“pos”的初始值,即第一个问题
  • 因为你想将“pos”传递给新的activity,所以应该将变量“pos”设为应用级变量,或者用最简单的方式,你可以使用“意图”

标签: android android-intent instance


【解决方案1】:

如果由于某种原因使您失败,您始终可以使用其包名称来调用您的活动,尽管这是实现目标的一种相当迂回的方式。

PackageManager pm = getPackageManager();  //The getPackageManager() method must be called from inside the activity
Intent intent = pm.getLaunchIntentForPackage("your.package.name");
startActivity(intent);

【讨论】:

  • 当我在最初(或之后)调用函数时,它会更改为下一个问题,但会直接切换回“pos”的初始值,即第一个问题
  • @eurynox 那是因为通过重新启动意图,您将重新启动应用程序并清除变量。为了解决这个问题,您可以重组您的应用程序,使其不必重新启动,或者您可以通过将变量保存到文本文件来使它们保持不变。然而,第二个选项更像是一个创可贴,可能不应该是你的永久修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
相关资源
最近更新 更多