getSelectedItemPosition()总是返回-1 [英] getSelectedItemPosition() always return -1

查看:1359
本文介绍了getSelectedItemPosition()总是返回-1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个扩展ListActivity的类,它的做工精细

然后在onListItemClick()我用getSelectedItemPosition()和它总是返回-1

P.S getSelectedItemId()返回一些长的数字像994393434

 公共类TasksShowActivity扩展ListActivity {    私人光标mCursor;
    私人ListAdapter mAdapter;    私有静态最后的String [] = mContent新的String [] {
        TasksDbHelper._ID,TasksDbHelper.NAME,
        TasksDbHelper.USER};    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);        mCursor = managedQuery(
                TasksProvider.CONTENT_URI,mContent,NULL,NULL,NULL);        mAdapter =新SimpleCursorAdapter(这一点,
                    R.layout.tasks,mCursor,
                    新的String [] {TasksDbHelper.NAME,TasksDbHelper.USER},
                    新的INT [] {R.id.name,R.id.date});        setListAdapter(mAdapter);
    }    @覆盖
    保护无效onListItemClick(ListView中升,视图V,INT位置,最终长ID){
        super.onListItemClick(L,V,位置ID);      吐司面包= Toast.makeText(这一点,位置:+ this.getSelectedItemPosition(),Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER,0,0);
            toast.show();
    }
}

布局:

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:方向=垂直
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:ID =@ + ID / tasks_root_element>    <的TextView
        机器人:ID =@ + ID /名称
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:TEXTSIZE =18sp
        />
    <的TextView
        机器人:ID =@ + ID /日期
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentRight =真
        机器人:TEXTSIZE =18sp
        机器人:paddingRight =10px的
        />< / RelativeLayout的>


解决方案

  

然后在onListItemClick()我用getSelectedItemPosition()和它总是返回-1


这是因为什么也没有选择。 点击和选择是两码事。 选择在的ListView 经由指点设备进行(D垫,轨迹球,方向键等)。

I have a class that extends ListActivity, its work fine

Then in the onListItemClick() I use getSelectedItemPosition() and its always return -1

P.S getSelectedItemId() return some long number like 994393434

public class TasksShowActivity  extends ListActivity {

    private Cursor mCursor; 
    private ListAdapter mAdapter;

    private static final String[] mContent = new String[] {
        TasksDbHelper._ID, TasksDbHelper.NAME,
        TasksDbHelper.USER};

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     

        mCursor = managedQuery(
                TasksProvider.CONTENT_URI, mContent, null, null, null);

        mAdapter = new SimpleCursorAdapter(this, 
                    R.layout.tasks, mCursor, 
                    new String[] {TasksDbHelper.NAME, TasksDbHelper.USER}, 
                    new int[] {R.id.name, R.id.date});

        setListAdapter(mAdapter);
    }

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

      Toast toast = Toast.makeText(this, "Position: "+this.getSelectedItemPosition() , Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
    }
}

layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tasks_root_element">

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" 
        android:textSize="18sp"
        />
    <TextView
        android:id="@+id/date"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"
        android:textSize="18sp" 
        android:paddingRight="10px"
        />

</RelativeLayout>

解决方案

Then in the onListItemClick() I use getSelectedItemPosition() and its always return -1

That is because nothing is selected. "Click" and "select" are separate things. "Select" in a ListView is done via the pointing device (D-pad, trackball, arrow keys, etc.).

这篇关于getSelectedItemPosition()总是返回-1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆