#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;
}