У меня есть две страницы для выбора типа суда.На первой странице подробностей я должен установить флажок и передать значения на следующую страницу подробностей, в которой я получаю переданные значения в recyclerviewv, в котором содержится textview и edittext.Теперь я должен ввести ставку для каждого суда в тексте редактирования и передать значение от адаптера к активности, которое я должен установить при нажатии кнопки активности.Я не могу передать значения edittext.Поэтому, пожалуйста, помогите мне в этом.
DetailsActivity:
public class Details1Activity extends AppCompatActivity implements RecyclerViewItemInterface {
RecyclerView rv, rt;
private List<RegCompleteModel> details2Lists;
private List<FacilityModel> lists;
private ProgressDialog pDialog;
APIService service;
private FacilityAdapter adapter;
List<Details1PageModel> list;
private Button mNextButton;
List<String> ls;
ArrayList<String> mRateList;
List<String> mIds;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details1);
Bundle extras = getIntent().getExtras();
if (extras != null) {
ls = new ArrayList<>();
mIds = new ArrayList<>();
ls = extras.getStringArrayList("types");
mIds = extras.getStringArrayList("Ids");
mRateList = new ArrayList<>();
rt = findViewById(R.id.list_rateTypes);
Details1Adapter dadapter = new Details1Adapter(ls,Details1Activity.this);
rt.setLayoutManager(new LinearLayoutManager(Details1Activity.this, LinearLayoutManager.VERTICAL, true));
rt.setAdapter(dadapter);
Log.d("List", ls.toString());
}
pDialog = new ProgressDialog(Details1Activity.this);
pDialog.setMessage("Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
service = Apicall.createService(APIService.class, this);
Call<FacilityList> call = service.getFacilities();
call.enqueue(new Callback<FacilityList>() {
@Override
public void onResponse(Call<FacilityList> call, Response<FacilityList> response) {
if (response.isSuccessful()) {
pDialog.dismiss();
lists = response.body().getFacilities();
rv = findViewById(R.id.list_facilities);
adapter = new FacilityAdapter(lists, Details1Activity.this);
FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(Details1Activity.this);
layoutManager.setFlexDirection(FlexDirection.ROW);
rv.setLayoutManager(layoutManager);
rv.setAdapter(adapter);
}
}
@Override
public void onFailure(Call<FacilityList> call, Throwable t) {
pDialog.dismiss();
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
}
});
mNextButton=findViewById(R.id.details1Next_button);
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
DetailsAdapter:
public class Details1Adapter extends RecyclerView.Adapter<Details1Adapter.ViewHolder> {
private Context cntx;
private List<String> intent;
private static ArrayList<String> rating;
public Details1Adapter(List<String> intent Context cntx){
this.intent=intent;
this.cntx=cntx;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_typeitems,viewGroup,false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder,final int i) {
// String typename = intent.get(i);
// Log.d("Value", typename);
// Details2List mDetail=intent.get(i);
viewHolder.rateType.setText(intent.get(i));
viewHolder.editRate.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String rate=viewHolder.editRate.getText().toString();
rating.add(rate);
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
@Override
public int getItemCount() {
return intent.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView rateType,editRate;
public ViewHolder(@NonNull View itemView) {
super(itemView);
rateType=itemView.findViewById(R.id.rateText1);
editRate=itemView.findViewById(R.id.rateText_edit);
}
}
}