2013-04-18 72 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

是的。請幫助我,我希望儘快完成。 – androidcodehunter

+0

最後一個位置與最後一個可見位置不同,請澄清此位置。上一個位置或最後一個可見位置 – Pragnani

回答

6

的方法保持一個布爾說用戶是否自己選擇的任何東西。讓布爾是userSelected = false;

現在你可以在getView()做到:

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

在onItemClick,當用戶已經做出選擇自己,只是設置userSelected=true;

+0

正是我想要的。謝謝Aswin Kumar。 – 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) { 

     } 

    }); 
相關問題