2012-01-04 58 views
0

我有一个小问题。Android:创建一个意图/活动的新实例

我想做一个问题列表应用程序,因此,当我按下一个按钮我想要新的问题加载到QuestionActivity类,并且当按下上一个按钮时我想上一个问题出现。

的problemen是,我无法弄清楚如何使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(); 
      } 
     } 
    }); 

以上是按钮的动作。

在此先感谢..

+0

你的代码似乎是确定的,但开始新的活动 – Leo 2012-01-04 15:24:09

+0

之前,你应该打电话给你的函数。当我前(或后)调用的函数intitially则切换到下一个问题,但其直接切换回inital “pos”的值是第一个问题 – eurynox 2012-01-04 15:31:57

+0

,因为您想要将“pos”传递给新的活动,所以您应该使变量“pos”成为应用程序级变量,或者以最简单的方式,可以使用putExtra “意图”的功能 – Leo 2012-01-04 15:41:12

回答

0

应该就是失败,你因为某种原因,你可以使用它的包名,虽然这是实现你的目标的一个相当迂回的方式总是打电话给你的活动。

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

当我在开始之前(或之后)调用函数时,它会更改为下一个问题,但直接切换回“pos”的初始值,这是第一个问题 – eurynox 2012-01-04 15:33:42

+0

@eurynox这是因为通过启动意图再次,y ou正在重新启动应用程序并清理变量。为了解决这个问题,你可以重构你的应用程序,以便它不必重新启动,或者通过将变量保存到文本文件来使变量保持不变。然而,第二种选择更像是一个bandaid,可能不应该是你的永久性修复。 – 2012-01-04 15:40:51

相关问题