Listview项目索引对用户可见

时间:2011-11-09 20:48:33

标签: android listviewitem

真的需要一些帮助!

我有一个列表视图,用户可以在其中添加数据(行)。也可以删除行(每个listviewitem的上下文菜单) 对于每个listviewitem,都有一个文本框,其中包含行号。每行增加一个数字,如果删除行,则行号也会更改(删除的项目索引下面的所有行都减1)

我有以下代码需要更新(内存泄漏,已经知道如何操作)。问题是关于向用户显示的行索引。我想我的方法是错的。 如果有办法用马厩做?行指数? 我想有但是在WEB上找不到它的例子。

我已经明白根据情况获取行号是错误的,尽管这个有效

基本上我需要的是根据位置(第一个或最后一个)来膨胀相关的布局

这是getView函数

@Override
public View getView(    int         position, 
                        View        convertView, 
                        ViewGroup   parent ) 
{
    ViewHolder viewHolder = new ViewHolder();

    if( convertView == null )
    {
        if( position == 0 && position == getCount() - 1 )
        {
            // TODO
            convertView             = mInflater.inflate(R.layout.recipes_ingredient_list_up_view_entry, null);//mSingleItem; 
            viewHolder.mTextView    = (TextView) convertView.findViewById( R.id.listUp_RecipeIngredientNameTextBoxId );;//mSingleTextView;
        }
        else if( position == 0)
        {
            convertView             = mInflater.inflate(R.layout.recipes_ingredient_list_up_view_entry, null);//mUpItem;
            viewHolder.mTextView    = (TextView) convertView.findViewById( R.id.listUp_RecipeIngredientNameTextBoxId );;//mUpTextView;
        }
        else if( position == getCount() - 1 )
        {
            convertView             = mInflater.inflate(R.layout.recipes_ingredient_list_down_view_entry, null);;;;//mDownItem;
            viewHolder.mTextView    = (TextView) convertView.findViewById( R.id.listDown_RecipeIngredientNameTextBoxId );;;//mDownTextView;
        }
        else
        {
            convertView             = mInflater.inflate(R.layout.recipes_ingredient_list_middle_view_entry, null);//mMiddleItem;
            viewHolder.mTextView    = (TextView) convertView.findViewById( R.id.listMiddle_RecipeIngredientNameTextBoxId );;// mMiddleTextView;
        }

        viewHolder.mTextView.setTypeface( GlobalData.Fonts.ARIAL );
        viewHolder.mTextView.setTextSize(14);
        viewHolder.mTextView.setTextColor( Color.BLACK );
    }
    else
    {
        viewHolder = (ViewHolder) convertView.getTag();
    }

    if( super.getItem(position) != null )
    {
        viewHolder.mTextView.setText( mItems.get(position) );
        convertView.setTag( viewHolder );
    } 

    return convertView;
}

0 个答案:

没有答案