我正在使用ListNavigation,并且在Activity启动时调用onNavigationItemSelected()方法。
这是我的方法:
@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;
}
但事情显然是错误的。这些意图不应该是那种方法吗?或者我得到了一些非常混乱的东西?
我得到的行为是,当我尝试去另一个活动时,它总会把它带回到开始活动。
知道出了什么问题吗?
谢谢, 亚历
答案 0 :(得分: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,我知道不要做任何事情。