0

我正在使用 ListNavigation 并且 onNavigationItemSelected() 方法在 Activity 启动时被调用。

这是我的方法:

@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) 
{        
    if ( itemPosition == 1 )
    {
        Intent myIntent = new Intent(MainActivity.this, MainActivity.class);
        MainActivity.this.startActivity(myIntent); 
    }
    else
    if ( itemPosition == 2 )
    {
        Intent myIntent = new Intent(MainActivity.this, LearnActivity.class);
        MainActivity.this.startActivity(myIntent);          
    }        
    else
    if ( itemPosition == 3 )
    {
        Intent myIntent = new Intent(MainActivity.this, ServicesActivity.class);
        MainActivity.this.startActivity(myIntent);          
    }                

    return true;
}    

但它显然有问题。这些意图不应该在那个方法中吗?还是我把事情搞混了?

我得到的行为是,当我尝试去另一个活动时,它总是把它带回到开始的活动。

知道有什么问题吗?

谢谢,亚历克斯

4

1 回答 1

0

修复结束了这个解决方法:

<resources>
    <string-array name="locations">
        <item>Navigation</item>        
        <item>Home</item>
        <item>Learn</item>
        <item>Services</item>
        <item>Next Steps</item>
    </string-array>
</resources>

接着

**  @Override
  public boolean onNavigationItemSelected(int itemPosition, long itemId) 
  {        
      if ( itemPosition == 1 )
      {
          Intent myIntent = new Intent(ServicesActivity.this, MainActivity.class);
          ServicesActivity.this.startActivity(myIntent);            
      }
      else
      if ( itemPosition == 2 )
      {
          Intent myIntent = new Intent(ServicesActivity.this, LearnActivity.class);
          ServicesActivity.this.startActivity(myIntent);            
      }        
      else
      if ( itemPosition == 3 )
      {
          Intent myIntent = new Intent(ServicesActivity.this, ServicesActivity.class);
          ServicesActivity.this.startActivity(myIntent);            
      }        
      else
      if ( itemPosition == 4 )
      {
          Intent myIntent = new Intent(ServicesActivity.this, GiveBackActivity.class);
          ServicesActivity.this.startActivity(myIntent);
      }                

      return true;
  }    

问题是有时被调用的 id 会触发错误的意图。所以我不得不小心。此外,我将第一个数组项设为任意,因此如果页面加载且 id 为 0,我知道什么也不做。

于 2013-07-09T00:58:16.787 回答