1

因此,在选择列表中的项目后,我试图启动一项新活动....根据我所阅读的内容,这是非常基本的。我也在尝试发送附加值。所以我可以选择列表中的项目,新的活动开始,设置了额外的,但额外的值是空的。我注意到新活动的意图 id 与第一个活动的意图不匹配。我不知道它是否应该。

从活动 1:

public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {
                  Intent displayIntent = new Intent(getApplicationContext(), DisplayActivity.class);
              int index  = _names.indexOf(((TextView) view).getText());
              displayIntent.putExtra("ID_TAG", ids.get(index));
              startActivity(displayIntent);
          }

在 Activity2 (DisplayActivity)

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras(); 
        _hiveIndex = extras.getLong("ID_TAG");
}

任何想法为什么我不会得到价值?extras 下的 mMap 在第一个意图中设置为之前的哈希映射,但在 activity2 中为 null。

4

3 回答 3

2

Activity1 的 displayIntent.putExtra("ID_TAG", ids.get(index)) 不使用 Bundle 对象,要放置 Bundle 对象,您需要使用 putExtras(Bundle bundle) 方法而不是它。因为您试图获取 Bundle 对象活动2。您在 Activity1 putExtra 方法中传递的不是 Bundle 对象,但是您试图在 Activity2 中获取 Bundle 对象,因此您什么也得不到。 displayIntent.putExtra("ID_TAG", ids.get(index)) ; 替换为 displayIntent.putExtras(your bundle object) ;

或者你可以使用getIntExtra(String name, int defaultValue)方法。

于 2011-07-02T04:19:50.020 回答
0

在 Activity1 中,您存储一个整数。在 Activity2 中,您尝试检索 Long。您要么需要在 Activity2 中获取整数,要么在 Activity1 中存储 Long。理解?

于 2011-07-02T03:55:26.273 回答
0

这个怎么样?

在 DisplayActivity 中,

利用getIntent().getIntExtra("ID_TAG")

于 2013-04-05T01:17:22.723 回答