如何在android listview选择中获得两个以上的值

时间:2012-01-21 00:16:38

标签: java android android-listview

我想打开一个活动取决于用户在ListView上选择的值。如果用户选择具有type1值的列表项,则应该打开acitvity1(activity1.class),如果列表项属于type2,则应该打开acitvity2(activity2.class)。我仍然想获得id值。 有人可以帮我在列表中获取多个值。 (不仅仅是id值)或解决这个问题。

以下是我的代码;

            @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);

            //TODO:need to assign the value here 
            String mEdit = .......;

            if (mEdit.equals("type1")){
                Intent i = new Intent(this, activity1.class);
                i.putExtra(DbAdapter.KEY_ROWID, id );
                startActivityForResult(i, ACTIVITY_EDIT);
            }else if (mEdit.equals("type2")){
                Intent i = new Intent(this, activity2.class);
                i.putExtra(KEY_ROWIDA, id );
                startActivityForResult(i, ACTIVITY_EDIT);
            };

            }
  

提前致谢

3 个答案:

答案 0 :(得分:0)

您可以在ListActivity上调用getListView()。getItemAtPosition(int)并为其指定列表项的索引。然后,您可以将其强制转换为支持对象,并对该对象执行任何操作。我自己的一个应用程序示例:

ForumDescriptor selected = (ForumDescriptor) getListView().getItemAtPosition(position);

ForumDescriptor有一些关于个人子论坛的信息(它是一个网站的论坛查看器)。每个都是我列表中的一个项目。

答案 1 :(得分:0)

这可能适用于这种情况,

...    
//TODO:need to assign the value here 
        TextView tv = (TextView)v.findViewById(R.id.itemname);
        String category = tv.getText().toString();
...

'R.id.itemname'是layout xml中定义的列表项的id属性。

答案 2 :(得分:0)

  

这是工作代码;

            @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        //TODO:need to assign the value here 
        Cursor mycursor = (Cursor) getListView().getItemAtPosition(position); 
        //1 is the field position
        String mEdit = mycursor.getString(1);

        if (mEdit.equals("type1")){
            Intent i = new Intent(this, activity1.class);
            i.putExtra(DbAdapter.KEY_ROWID, id );
            startActivityForResult(i, ACTIVITY_EDIT);
        }else if (mEdit.equals("type2")){
            Intent i = new Intent(this, activity2.class);
            i.putExtra(KEY_ROWIDA, id );
            startActivityForResult(i, ACTIVITY_EDIT);
        };

        }