Индекс элемента списка, видимый пользователю - PullRequest
1 голос
/ 10 ноября 2011

Действительно очень нужна помощь с этим !!!

У меня есть представление списка, в котором пользователь может добавлять к нему данные (строки).Также можно удалить строки (контекстное меню для каждого элемента списка). Для каждого элемента списка есть текстовое поле с номером строки в нем.Номер увеличивается для каждой строки, если строки удаляются, то номер строки также изменяется (все строки ниже индекса удаленного элемента уменьшаются на 1)

У меня есть следующий код, который необходимо обновить (для утечки памяти, уже знаю, как это сделать).Вопрос касается индекса строки, который показывается пользователю.Я думаю, что мой способ сделать это НЕПРАВИЛЬНО.Если есть способ сделать это со стабильными?с индексом строки?Я думаю, что есть, но не смог найти примеры для этого в сети.

Я понял, что получить номер строки в соответствии с возможностью неправильно, хотя этот работает

В основном, что мне нужнозаключается в том, чтобы раздувать связанный макет в соответствии с положением (первым или последним)

Вот функция 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;
}
...