Индекс элемента Listview, видимый пользователю

#android #listviewitem

#Android #listviewitem

Вопрос:

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

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

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

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

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

Вот функция getView

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

    if( convertView == null )
    {
        if( position == 0 amp;amp; 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;
}