import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class Address_Adapter extends RecyclerView.Adapter<Address_Adapter.AddresssHolder>{
private List<Model_Address> listData;
private LayoutInflater inflater;
private Context context;
private RadioButton rbChecked = null;
private int rbPosoition = 0;
public Address_Adapter(List<Model_Address> listData, Context context) {
this.listData = listData;
this.context = context;
this.inflater = LayoutInflater.from(context);
}
@Override
public AddresssHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.layout_recycler_address, parent,false);
return new AddresssHolder(view,listData,context); }
@Override
public void onBindViewHolder(final AddresssHolder holder, final int position) {
Model_Address item = listData.get(position);
holder.address.setText(item.getAddress());
holder.state.setText(item.getState());
holder.pin_code.setText(item.getPin_code());
holder.contact.setText(item.getContact());
if (holder.selected.isChecked()){
rbPosoition = holder.getAdapterPosition();
Toast.makeText(context, "" + rbPosoition, Toast.LENGTH_SHORT).show();
}
}
@Override
public int getItemCount() {
return listData.size();
}
public class AddresssHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView address, state, pin_code, contact;
private RadioButton selected;
private View container;
private List<Model_Address> listData;
private Context context;
public AddresssHolder(View itemView,List<Model_Address> listdata,Context context) {
super(itemView);
this.listData = listdata;
this.context = context;
itemView.setOnClickListener(this);
address = (TextView) itemView.findViewById(R.id.text_address);
state = (TextView) itemView.findViewById(R.id.state_text);
pin_code = (TextView) itemView.findViewById(R.id.pin_code_text);
contact = (TextView) itemView.findViewById(R.id.contact_text);
selected = (RadioButton) itemView.findViewById(R.id.select_radioButton);
if (rbPosoition == 0 && selected.isChecked())
{
rbChecked = selected;
rbPosoition = 0;
}
selected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RadioButton rb = (RadioButton) v;
int clickedPos = getAdapterPosition();
if (rb.isChecked()){
if(rbChecked != null)
{
rbChecked.setChecked(false);
}
rbChecked = rb;
rbPosoition = clickedPos;
}
else{
rbChecked = null;
rbPosoition = 0;
}
}
});
}
@Override
public void onClick(View v) {
int positenter code hereion = getAdapterPosition();
}
}
}
检查一下这个,希望对你有帮助
class MyViewHolder extends RecyclerView.ViewHolder{
LinearLayout linear_row;
RadioButton rb_room;
TextView tv_amount, tv_booking_policy;
public MyViewHolder(View itemView) {
super(itemView);
linear_row = (LinearLayout) itemView.findViewById(R.id.linear_row);
rb_room = (RadioButton) itemView.findViewById(R.id.rb_room);
tv_booking_policy = (TextView) itemView.findViewById(R.id.tv_booking_policy);
tv_amount = (TextView) itemView.findViewById(R.id.tv_amount);
linear_row.setOnClickListener(this);
// use from here*********************
View.OnClickListener l = new View.OnClickListener() {
@Override
public void onClick(View v) {
mSelectedItem = getAdapterPosition();
notifyItemRangeChanged(0, roomList.size());
}
};
itemView.setOnClickListener(l);
rb_room.setOnClickListener(l);
// till here************************
}
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.rb_room.setChecked(position == mSelectedItem); // from this you only get one radio button selected in recycler view
}
我知道RecycerView类中没有默认的选择方法,但我尝试了以下方法, 在尝试这段代码时,我得到了预期的输出,但完全不是。 我将用图像来解释这一点。 我如何克服这个问题?有时,如果我快速滚动列表,就会选择其他项目。如何克服这个问题呢? 更新 当我试图在之后使用时,
问题内容: 我正在尝试从3个按钮的列表中进行选择,但是找不到选择它们的方法。以下是我正在使用的HTML。 我可以使用以下代码找到它: 输出:SRF,COM,MOT 但我想选择ChoiceOne。(单击它)我该怎么做? 问题答案: 使用CSS选择器或XPath 直接按属性选择,然后单击它。 更正(但是OP应该学习如何在文档中查找) 在Python绑定中,它不存在,称为。一个人应该能够查看异常消息并在
此输出:SRF、COM、MOT 但我想选一个。(点击它)我怎么做?
我想在我的应用程序中放两个单选按钮(男性和女性)。 我是用单选按钮(不是组)来实现的,但问题是:一个按钮不能被取消选中,也可以同时检查两个按钮 RadioButton group是一组三个按钮,我只需要两个。有没有办法让他们成为两个人? 有什么帮助吗?
问题内容: 我是ReactJS的新手,很抱歉,如果听起来不对。我有一个根据接收到的数据创建多个表行的组件。 列中的每个单元格都有一个单选复选框。因此,用户可以从现有行中选择一个和一个。选项应在页脚中显示。那就是我被困住的地方。 在jQuery中,我可以做一些事情,例如选择一个单选复选框类型并将其插入第一个页脚单元格。 但是肯定有一种Reactjs方式,我完全不知道吗?非常感谢 问题答案: 渲染的任
在jQuery中,我可以执行这样的操作,以获得一个单选复选框类型的选择,并将其插入到第一个页脚单元格中。 但肯定有一种Reactjs方式,我完全不知道?多谢