小编use*_*577的帖子

为什么启动我的活动的Intent不包含我在发送给startActivity()的Intent中放入的额外数据?

我最初解释得很糟糕.这是我的问题:我发送给startActivity()方法的Intent包含一个私有字段mMap,它是一个包含我发送给putExtra()的字符串的Map.当目标活动开始时,对getIntent()的调用将返回包含这些值的Intent .mMap字段为.显然,View层次结构的内容或启动新活动的OS部分创建了一个新的Intent传递给它,因为对象ID是不同的.

但为什么?为什么putData()值没有携带fowrard到新的Intent?

启动新活动的活动扩展了Activity.这是启动代码:

public boolean onOptionsItemSelected(final MenuItem item) {
    switch (item.getItemId()) {
    case 4:
        i = new Intent(this, StatList.class);
        i.putExtra("Name1", "Test1");
        i.putExtra("Name3", "Test2");
        startActivity(i);
     }   
 }
Run Code Online (Sandbox Code Playgroud)

我已尝试使用和不使用(推荐)完整包名称前缀的键值.

在Eclipse调试器中,我已经验证了正确插入到i.mExtras.mMap中的播放器名称的值.

这是来自初学者的代码:

public class StatList extends ListActivity {
private final StatsListAdapter statsAdapter;

public StatList() {
    statsAdapter = StatsListAdapter.getInstance(this);
} // default ctor

@Override
public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final Intent i = getIntent();
    final Bundle extras = i.getExtras();
          < more code here >
} 
Run Code Online (Sandbox Code Playgroud)

当执行到此方法时,mIntent.mExtras.mMap为null …

android android-intent android-activity

6
推荐指数
1
解决办法
1219
查看次数

标签 统计

android ×1

android-activity ×1

android-intent ×1