[英]Change value recycleview.adapter and save it to textview in mainactivity?
When I change the value from recycleview.adapter, i want to set it the value to textview in mainactivity, how to do it? 当我从recycleview.adapter更改值时,我想在mainactivity中将其值设置为textview,该怎么做?
the recycle data retreive from my json, so it will be random and many data, when I change or add the value of "total win" to more than "0", the textview at bottom will be appear, and "total all" will count from data I add, when its done, I want to send the "result" value to next activity or post and save it to mysql dbase, 回收数据从我的json提取,因此它将是随机的并且有许多数据,当我将“ total win”的值更改或添加到大于“ 0”时,将显示底部的textview,而“ total all”将从我添加的数据中计数,完成后,我想将“结果”值发送到下一个活动或发布并保存到mysql dbase,
here my code of MainActivity : 这是我的MainActivity代码:
...
private List<Details> listDetails = new ArrayList<>();
private RecyclerAdapter viewAdapter;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
ButterKnife.bind(this);
viewAdapter = new RecyclerAdapter(this, listDetails);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(viewAdapter);
getMyData();
}
...
private void getMyData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(AppConfig.URL_MAIN)
.addConverterFactory(GsonConverterFactory.create())
.build();
...
});
...
My RecycleAdapter code : 我的RecycleAdapter代码:
...
private Context context;
private List<Details> listDetails;
public RecyclerAdapter(Context context, List<Details> listDetails) {
this.context = context;
this.listDetails = listDetails;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_view, parent, false);
ViewHolder holder = new ViewHolder(v);
return holder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final Details getSet = listDetails.get(position);
holder.tvName.setText(getSet.getName());
holder.numberPickerTotalWin.setValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(int value, ActionEnum action) {
Toast.makeText(context, position + value + " Clicked", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return listDetails.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
@BindView((R.id.nP))
NumberPicker numberPickerTotalWin;
@BindView(R.id.tvName)
TextView tvName;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
...
}
}
Check the code 检查代码
YourActivity ... implements RecyclerViewItemClick YourActivity ...实现RecyclerViewItemClick
private List<Details> listDetails = new ArrayList<>();
private RecyclerAdapter viewAdapter;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
ButterKnife.bind(this);
viewAdapter = new RecyclerAdapter(this, listDetails, this);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(viewAdapter);
getMyData();
}
...
private void getMyData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(AppConfig.URL_MAIN)
.addConverterFactory(GsonConverterFactory.create())
.build();
...
});
RecyclerViewAdapter
RecyclerViewAdapter
private RecyclerViewItemClick mListener;
public RecyclerAdapter(Context context, List<Details> listDetails, RecyclerViewItemClick listener) {
this.context = context;
this.listDetails = listDetails;
this.mListener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_view, parent, false);
ViewHolder holder = new ViewHolder(v, mListener);
return holder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
final Details getSet = listDetails.get(position);
holder.tvName.setText(getSet.getName());
holder.numberPickerTotalWin.setValueChangedListener(new ValueChangedListener() {
@Override
public void valueChanged(int value, ActionEnum action) {
Toast.makeText(context, position + value + " Clicked", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return listDetails.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
@BindView((R.id.nP))
NumberPicker numberPickerTotalWin;
@BindView(R.id.tvName)
TextView tvName;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (mListener != null){
//you can access to the current position if you want -> getLayoutPosition()
mListener.yourMethod();
}
}
public interface RecyclerViewItemClick {
void yourMethod();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.