2013-04-18 3 views
1

Я создал список с радиоблоком. ListView, как на картинке ниже: enter image description hereКак получить последнее положение позиции ListView

И мой GetView является:

public View getView(final int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 
    PaymentData rowItem = getItem(position); 
    LayoutInflater mInflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) { 
     convertView = mInflater.inflate(
       com.android.paypal.homeactivity.R.layout.list_item, null); 
     holder = new ViewHolder(); 
     holder.radioBtn = (RadioButton) convertView 
       .findViewById(com.android.paypal.homeactivity.R.id.rdb_payment_method); 
     holder.btPaymentMethod = (Button) convertView 
       .findViewById(com.android.paypal.homeactivity.R.id.bt_item_event); 
     convertView.setTag(holder); 
    } else 
     holder = (ViewHolder) convertView.getTag(); 

    holder.radioBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if ((position != mSelectedPosition) && (mSelectedRB != null)) { 
       mSelectedRB.setChecked(false); 
      } 

      mSelectedPosition = position; 
      mSelectedRB = (RadioButton) v; 
     } 
    }); 

    if (mSelectedPosition != position) { 
     holder.radioBtn.setChecked(false); 
    } else { 
     holder.radioBtn.setChecked(true); 
     if (mSelectedRB != null && holder.radioBtn != mSelectedRB) { 
      mSelectedRB = holder.radioBtn; 
     } 
    } 

    holder.radioBtn.setText(rowItem.getRdbText()); 
    holder.btPaymentMethod.setText(rowItem.getBtText()); 
    return convertView; 

} 

Я хочу авто проверил последний радиокнопку, когда экран приходит первым. Как я могу это достичь.

+0

Вы имеете в виду последнюю радиокнопку в списке? – Pragnani

+0

yep. Пожалуйста, помогите мне, я хочу, чтобы это как можно скорее. – androidcodehunter

+0

Последнее положение отличается от последнего видимого положения, уточняет это. Положение позиции или lastVisible position – Pragnani

ответ

6

Держите булево сказать пользователь сам выбрал ли что-нибудь. Пусть булева будет userSelected = false;

Теперь вы могли бы сделать в getView():

if(position==getCount()-1 && userSelected==false) 
    holder.radioBtn.setChecked(true); 
else 
    holder.radioBtn.setChecked(false); 

В onItemClick, когда пользователь сделал выбор сам, просто установите userSelected=true;

+0

Точно то, что я хочу. Спасибо Асвин Кумар. – androidcodehunter

+0

Правильный ответ –

4

Ваша последняя позиция, int lastpostion = getcount() -1; где getcount() является метод в классе adpater

+0

Сначала я хочу проверить последнюю позицию. Является ли это последней позицией, тогда я хочу, чтобы кнопка-переключатель setChecked (true). – androidcodehunter

0

Используя этот метод

mListView.setOnScrollListener(new OnScrollListener() { 

     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 

      if (scrollState == onScroll) { 
       if (mListView.getLastVisiblePosition() == adapter.getCount() - 1) { 
        //Update new data here 
              // and then, notify your adapter 
              adapter.notifyDataSetChanged(); 
       } 
      } 
     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

     } 

    }); 
Смежные вопросы