2

我用单选按钮创建了一个列表视图。列表视图如下图所示: 在此处输入图像描述

我的 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;

}

我想在屏幕第一个出现时自动检查最后一个单选按钮。我怎样才能做到这一点。

4

3 回答 3

6

持有一个布尔值来表示用户是否自己选择了任何东西。让布尔值成为userSelected = false;

现在你可以做getView()

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

在onItemClick中,当用户自己做出选择后,只需设置userSelected=true;

于 2013-04-18T12:15:05.747 回答
4

您的最后一个职位是,adpater 类中的方法在int lastpostion = getcount() -1;哪里getcount()

于 2013-04-18T12:13:21.563 回答
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) {

        }

    });
于 2013-10-29T05:10:22.083 回答