[英]Android two way binding with int type
我在使用 Integer 數據類型實現兩種方式綁定時遇到了一些問題。 我有回收視圖用戶必須插入學位,當他單擊按鈕時,數據 retrofit 會將其發送到服務器。 但是當用戶在度字段中插入數字時,它將返回 0
如何解決它請。
Model Class:
public class QuModel extends AppCompatActivity {
public String Qu;
public String answer1;
public String answer2;
public String answer3;
public String answer4;
public int degree ;
public QuModel() {
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name = "qumodel"
type = "com.hota.exam.model.QuModel"/>
</data>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="4dp"
tools:ignore="ExtraText">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
<EditText
android:id="@+id/editTextQuestion"
android:layout_width="322dp"
android:layout_height="84dp"
android:layout_marginTop="64dp"
android:ems="10"
android:hint="Question"
android:inputType="textPersonName"
android:padding="4dp"
android:text="@={qumodel.Qu}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.539"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/QuNumber"
android:layout_width="231dp"
android:layout_height="41dp"
android:layout_marginTop="24dp"
android:padding="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.266"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextAnswer1"
android:layout_width="183dp"
android:layout_height="48dp"
android:layout_marginTop="180dp"
android:hint="Answer 1"
android:inputType="textPersonName"
android:padding="4dp"
android:text="@={qumodel.answer1}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.07"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextAnswer2"
android:layout_width="183dp"
android:layout_height="48dp"
android:layout_marginTop="232dp"
android:hint="Answer 2"
android:inputType="textPersonName"
android:padding="4dp"
android:text="@={qumodel.answer2}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.07"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextAnswer4"
android:layout_width="183dp"
android:layout_height="48dp"
android:layout_marginTop="328dp"
android:hint="Answer 4"
android:inputType="textPersonName"
android:padding="4dp"
android:text="@={qumodel.answer4}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.07"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextAnswer3"
android:layout_width="183dp"
android:layout_height="48dp"
android:layout_marginTop="276dp"
android:hint="Answer 3"
android:inputType="textPersonName"
android:padding="4dp"
android:text="@={qumodel.answer3}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.07"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/degree"
android:layout_width="98dp"
android:layout_height="45dp"
android:layout_marginTop="192dp"
android:hint="Degree"
android:inputType="number"
android:padding="4dp"
android:text="@{String.valueOf(qumodel.degree)}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</layout>
適配器:
public class QuAdapter extends RecyclerView.Adapter<QuAdapter.QuViewHolder> {
int id;
private ArrayList<QuModel> dataModelList;
private static final String TAG = "QuAdapter";
public QuAdapter(ArrayList<QuModel> dataModelList) {
this.dataModelList = dataModelList;
}
@NonNull
@Override
public QuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ListItemBinding Binding = DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
R.layout.list_item, parent, false);
return new QuViewHolder(Binding);
}
@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull QuViewHolder holder, int position) {
QuModel quModel = dataModelList.get(position);
holder.bind(quModel);
int Counter = position + 1 ;
holder.listItemBinding.QuNumber.setText("Qu no : " + Counter);
}
@Override
public int getItemCount() {
return dataModelList.size();
}
public static class QuViewHolder extends RecyclerView.ViewHolder {
public ListItemBinding listItemBinding;
public QuViewHolder(ListItemBinding listItemBinding) {
super(listItemBinding.getRoot());
this.listItemBinding = listItemBinding;
}
public void bind(Object obj) {
listItemBinding.setVariable(BR.qumodel, obj);
listItemBinding.executePendingBindings();
}
}
}
1- 制作學位字符串並制作 inputType 數字。
2-在適配器處添加 textwhatcher 以處理文本中的更改。
3-在發送到服務器之前使用 Integer.parseInt 轉換類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.