首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个活动中单击项目时从列表视图中获取id

在另一个活动中单击项目时从列表视图中获取id
EN

Stack Overflow用户
提问于 2011-11-10 22:56:13
回答 2查看 3.1K关注 0票数 0

下面的代码给出了生成ListView

代码语言:javascript
复制
public class MyList extends ListActivity {
static final String[] COUNTRIES = new String[] {LONG LIST OF COUNTRIES};
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(this,R.layout.main,COUNTRIES));
    ListView lv=getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,View view,int position,long id){
        Intent i=new Intent(MyList.this,Another.class);
        Bundle b = new Bundle();
                          b.putInt("id", (int)id);
                          intent.putExtras(b);
                          startActivity(intent);
        }
    });
  }
}

另一项活动是

代码语言:javascript
复制
public class Another extends Activity{
  public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.mainseocnd);
  Bundle b=new Bundle();
  int value= b.getInt("id",0);
  TextView tv=(TextView)findViewById(R.id.text);
  tv.setText(""+value);  
  }
}

现在,当我点击任何列表项,假设id-5,它总是显示0,我想得到列表视图项id,就像如果用户点击列表中的第二个项,另一个活动应该显示1(b/c从0开始)。请纠正我哪里出了问题。提前感谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 23:16:25

在第二个活动中而不是

代码语言:javascript
复制
Bundle b=new Bundle();
int value= b.getInt("id",0); 

使用

代码语言:javascript
复制
int value = icicle.getInt("id",0);

这会给你一个解决方案..。:)

票数 1
EN

Stack Overflow用户

发布于 2011-11-10 23:23:41

您检索值的方式是错误的:

代码语言:javascript
复制
Bundle b=new Bundle();
int value= b.getInt("id",0);

您创建了一个新的bundle,并尝试在没有(它是新的)时从其中获取一个值。相反,您必须获得该活动的启动意图提供的额外内容。试一试

代码语言:javascript
复制
int value = getIntent().getIntExtra("id", 0);

而不是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8081445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档