【问题标题】:Android: OnItemClickListener Wrong View PositionAndroid:OnItemClickListener 错误的视图位置
【发布时间】:2012-03-11 03:05:49
【问题描述】:

我有一个带有自定义 Baseadapter 的 Listview。我还设置了一个 OnItemClickListener ,虽然它被调用了,但似乎视图的位置不正确。

我想在单击项目的位置显示一个 QuickAction,但它没有在正确的位置创建。 Quickaction (mBar) 将视图作为参数获取并在特定位置绘制自身。我认为错误必须是视图的位置/布局参数。

听者:

    list.setOnItemClickListener(new OnItemClickListener()
    {

        @Override
        public void onItemClick(AdapterView<?> arg0, View view, int position, final long selectedCourseid)
        {
            QuickActionBar mBar = new QuickActionBar(context);
            mBar.addQuickAction(new QuickAction(context, R.drawable.ic_menu_mark, "choose"));
            mBar.addQuickAction(new QuickAction(context, R.drawable.ic_menu_save, "details"));  

            mBar.setOnQuickActionClickListener(new OnQuickActionClickListener()
            {
                @Override
                public void onQuickActionClicked(QuickActionWidget widget, int position)
                {

                          ....

                }
            });

            mBar.show(view);

        }
    });

如何正确设置视图的位置参数?

在扩展的 Baseadapter 中创建 View 的方法:

@Override
    public View getView(int position, View convertView, ViewGroup parent)
    {

        ViewHolder holder;

        cursor.moveToPosition(position);

        if(convertView == null){
            convertView = mLayoutInflater.inflate(R.layout.test, null);

            holder = new ViewHolder();                
            holder.test = (TextView) convertView.findViewById(R.id.test);
            ...


    } else {
            holder = (ViewHolder) convertView.getTag();
    }

        holder.test.setText("test");
             ...


        return convertView;
    }

【问题讨论】:

    标签: android listview view position onitemclicklistener


    【解决方案1】:

    在上面的 getView() 方法中,只需在 else {...} 语句中添加以下行:

    //This will update the position of the holder when the list updated.
    holder.position = position 
    

    我不知道是否有人找到了答案,但有人可能会去这里试一试以防万一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2013-11-29
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多