Java 如何获取RecyclerView编辑文本值?
我有一个Java 如何获取RecyclerView编辑文本值?,java,android,android-edittext,android-recyclerview,Java,Android,Android Edittext,Android Recyclerview,我有一个RecyclerView和EditText。我正在通过搜索将项目手动添加到RecyclerView,每行都有一个EditText和一些textview。我知道如何获取TextView数据,但问题是如何获取EditText输入数据(数值)。我可以得到前5个编辑文本数据(前5行),但从第5个位置它给了我第5个位置的值 Item : 7.50-15 10PR FM CEAT Quantity : 1 Item : 5.60-15 04PR K 511 CEAT
RecyclerView
和EditText
。我正在通过搜索将项目手动添加到RecyclerView
,每行都有一个EditText
和一些textview
。我知道如何获取TextView
数据,但问题是如何获取EditText
输入数据(数值)。我可以得到前5个编辑文本数据(前5行),但从第5个位置它给了我第5个位置的值
Item : 7.50-15 10PR FM CEAT Quantity : 1
Item : 5.60-15 04PR K 511 CEAT Quantity : 2
Item : 2.75-18 04PR SECURA F85 CEAT (F) Quantity : 3
Item : 3.00-17 06PR SECURA ZOOM CEAT (R) Quantity : 4
Item : 6.50-14 10PR FM CEAT Quantity : 5
Item : 5.00-12 04PR GRIP MASTER CEAT Quantity : 5
Item : 4.00-08 06PR AUTO RAJA RPG Quantity : 5
Item : 9.00-20 14PR CEAT CLT LUG Quantity : 5
Item : 8.25-20 14PR TR PLUS SUNTRAC Quantity : 5
Item : 7.00-15 12PR FM CEAT Quantity : 5
我从主活动中使用此方法来获取编辑文本数据。我正在使用for循环
private String getNumPicNumber(int i) {
if (myRecyclerView.findViewHolderForLayoutPosition(i) instanceof SelectItemAdapter.ItemHolder) {
SelectItemAdapter.ItemHolder childHolder = (SelectItemAdapter.ItemHolder) myRecyclerView.findViewHolderForLayoutPosition(i);
numberPickerNumber = childHolder.getQtyNumber();
}
return numberPickerNumber;
}
这是我的适配器
public class SelectItemAdapter extends RecyclerView.Adapter<SelectItemAdapter.ItemHolder> {
private List<String> itemsName, itemsQty, itemsPCode, itemPlant;
private OnItemClickListener onItemClickListener;
private LayoutInflater layoutInflater;
//private List<DummyEntry> mDataset;
private String[] mDataset;
public ArrayList myItems = new ArrayList();
public SelectItemAdapter(Context context, String[] mDataset) {
layoutInflater = LayoutInflater.from(context);
itemsName = new ArrayList<String>();
itemsQty = new ArrayList<String>();
itemsPCode = new ArrayList<String>();
itemPlant = new ArrayList<String>();
this.mDataset = mDataset;
}
@Override
public SelectItemAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = layoutInflater.inflate(R.layout.custom_row_selected_item, parent, false);
return new ItemHolder(itemView, this, new MyCustomEditTextListener());
}
@Override
public void onBindViewHolder(SelectItemAdapter.ItemHolder holder, final int position) {
holder.setItemName(itemsName.get(position));
holder.setItemQty(itemsQty.get(position));
holder.setItemPCode(itemsPCode.get(position));
holder.setItemPlant(itemPlant.get(position));
holder.myCustomEditTextListener.updatePosition(position);
holder.numPicker.setText(mDataset[position]);
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getItemCount() {
return itemsName.size();
}
public Object getItemName(int position) {
return itemsName.get(position);
}
public Object getItemPCode(int position) {
return itemsPCode.get(position);
}
public Object getItemPlant(int position) {
return itemPlant.get(position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
onItemClickListener = listener;
}
public OnItemClickListener getOnItemClickListener() {
return onItemClickListener;
}
public interface OnItemClickListener {
public void onItemClick(ItemHolder item, int position);
}
public void add(int location, String iName, String iQty, String iPCode, String iPlant) {
itemsName.add(location, iName);
itemsQty.add(location, iQty);
itemsPCode.add(location, iPCode);
itemPlant.add(location, iPlant);
notifyItemInserted(location);
}
public void remove(int location) {
if (location >= itemsName.size())
return;
itemsName.remove(location);
notifyItemRemoved(location);
}
public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private SelectItemAdapter parent;
TextView textItemName, txtPCode, txtAvailableQty, txtTempQty, txtPlant;
Button bRemove;
EditText numPicker;
public MyCustomEditTextListener myCustomEditTextListener;
public ItemHolder(View itemView, SelectItemAdapter parent, MyCustomEditTextListener myCustomEditTextListener) {
super(itemView);
this.parent = parent;
textItemName = (TextView) itemView.findViewById(R.id.txtProductName);
txtAvailableQty = (TextView) itemView.findViewById(R.id.txtAvailbleQty);
txtPCode = (TextView) itemView.findViewById(R.id.txtPCode);
txtPlant = (TextView) itemView.findViewById(R.id.txtPlant);
bRemove = (Button) itemView.findViewById(R.id.bRemove);
numPicker = (EditText) itemView.findViewById(R.id.numberPicker);
this.myCustomEditTextListener = myCustomEditTextListener;
this.numPicker.addTextChangedListener(myCustomEditTextListener);
bRemove.setOnClickListener(this);
}
public void setItemName(CharSequence name) {
textItemName.setText(name);
}
public void setItemQty(CharSequence name) {
txtAvailableQty.setText(name);
}
public void setItemPCode(CharSequence name) {
txtPCode.setText(name);
}
public void setItemPlant(CharSequence name) {
txtPlant.setText(name);
}
public String getQtyNumber() {
return numPicker.getText().toString();
}
public CharSequence getItemName() {
return textItemName.getText();
}
public CharSequence getItemPCode() {
return txtPCode.getText();
}
@Override
public void onClick(View v) {
final OnItemClickListener listener = parent.getOnItemClickListener();
if (listener != null) {
listener.onItemClick(this, getPosition());
}
}
}
private class MyCustomEditTextListener implements TextWatcher{
private int position;
public void updatePosition(int position) {
this.position = position;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
mDataset[position] = charSequence.toString();
}
@Override
public void afterTextChanged(Editable editable) {
}
}
}
公共类SelectItemAdapter扩展了RecyclerView.Adapter{
私有列表项目名称、项目名称、项目编码、项目工厂;
私有OnItemClickListener OnItemClickListener;
私人停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场;
//私有列表数据集;
私有字符串[]mDataset;
public ArrayList myItems=new ArrayList();
公共SelectItemAdapter(上下文,字符串[]mDataset){
layoutInflater=layoutInflater.from(上下文);
itemsName=新的ArrayList();
itemsQty=newarraylist();
itemsPCode=newArrayList();
itemPlant=新的ArrayList();
this.mDataset=mDataset;
}
@凌驾
public SelectItemAdapter.ItemHolder onCreateViewHolder(视图组父级,int-viewType){
View itemView=LayoutFlater.inflate(R.layout.custom\u row\u selected\u item,parent,false);
返回新的ItemHolder(itemView,this,new MyCustomEditTextListener());
}
@凌驾
BindViewHolder上的公共无效(选择ItemAdapter.ItemHolder holder,最终整数位置){
holder.setItemName(itemsName.get(position));
holder.setItemQty(itemsQty.get(position));
holder.setItemPCode(itemsPCode.get(position));
holder.setItemPlant(itemPlant.get(position));
holder.myCustomEditTextListener.updatePosition(位置);
holder.numPicker.setText(mDataset[position]);
}
@凌驾
public int getItemViewType(int位置){
返回位置;
}
@凌驾
public int getItemCount(){
返回itemsName.size();
}
公共对象getItemName(int位置){
返回itemsName.get(位置);
}
公共对象getItemPCode(int位置){
返回itemsPCode.get(位置);
}
公共对象getItemPlant(内部位置){
返回项目工厂。获取(位置);
}
公共void setOnItemClickListener(OnItemClickListener侦听器){
McClickListener=监听器;
}
公共OnItemClickListener getOnItemClickListener(){
返回到监听器;
}
公共接口侦听器{
公共无效项单击(项目持有人项目,内部位置);
}
public void add(int-location、String-iName、String-iQty、String-iPCode、String-iPlant){
itemsName.add(位置,iName);
itemsQty.add(位置、iQty);
itemsPCode.add(位置,iPCode);
项目工厂。添加(位置、设备);
插入的项目(位置);
}
公共无效删除(int位置){
如果(位置>=itemsName.size())
返回;
项目名称。删除(位置);
删除的项目(位置);
}
公共静态类ItemHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
私有SelectItemAdapter父级;
TextView textItemName、txtPCode、txtAvailableQty、txtTempQty、txtPlant;
按钮移动;
编辑文本numPicker;
公共MyCustomEditTextListener MyCustomEditTextListener;
公共项持有者(查看项视图,选择项适配器父项,MyCustomEditTextListener MyCustomEditTextListener){
超级(项目视图);
this.parent=parent;
textItemName=(TextView)itemView.findViewById(R.id.txtProductName);
txtAvailableQty=(TextView)itemView.findViewById(R.id.txtAvailableQty);
txtPCode=(TextView)itemView.findViewById(R.id.txtPCode);
txtPlant=(TextView)itemView.findViewById(R.id.txtPlant);
bRemove=(按钮)itemView.findViewById(R.id.bRemove);
numPicker=(EditText)itemView.findViewById(R.id.numberPicker);
this.myCustomEditTextListener=myCustomEditTextListener;
this.numPicker.addTextChangedListener(myCustomEditTextListener);
bRemove.setOnClickListener(this);
}
public void setItemName(字符序列名称){
textItemName.setText(名称);
}
public void setItemQty(字符序列名称){
txtAvailableQty.setText(名称);
}
public void setItemPCode(字符序列名称){
txtPCode.setText(名称);
}
公共无效setItemPlant(字符序列名称){
txtPlant.setText(名称);
}
公共字符串getQtyNumber(){
返回numPicker.getText().toString();
}
public CharSequence getItemName(){
返回textItemName.getText();
}
public CharSequence getItemPCode(){
返回txtPCode.getText();
}
@凌驾
公共void onClick(视图v){
final-OnItemClickListener=parent.getOnItemClickListener();
if(侦听器!=null){
onItemClick(this,getPosition());
}
}
}
私有类MyCustomEditTextListener实现TextWatcher{
私人职位;
公共无效更新位置(整数位置){
这个位置=位置;
}
@凌驾
更改前的公共无效(CharSequence CharSequence,int i,int i1,int i2){
}
@凌驾
public void onTextChanged(CharSequence CharSequence,int i,int i1,int i2){
mDataset[position]=charSequence.toString();
}
@凌驾
public void PostTextChanged(可编辑){
}
}
}