Java 是否更改值recycleview.adapter并将其保存到mainactivity中的textview?
当我从recycleview.adapter更改值时,我想在mainactivity中将其值设置为textview,如何操作 就是这样,, 回收数据是从我的json中回收的,所以它是随机的,而且数据很多, 当我将“total win”的值更改或添加到大于“0”的值时,底部的文本视图将出现,并且“total all”将从我添加的数据中计数,完成后,我想将“result”值发送到下一个活动或post并保存到mysql数据库 以下是我的主要活动代码:Java 是否更改值recycleview.adapter并将其保存到mainactivity中的textview?,java,android,android-recyclerview,Java,Android,Android Recyclerview,当我从recycleview.adapter更改值时,我想在mainactivity中将其值设置为textview,如何操作 就是这样,, 回收数据是从我的json中回收的,所以它是随机的,而且数据很多, 当我将“total win”的值更改或添加到大于“0”的值时,底部的文本视图将出现,并且“total all”将从我添加的数据中计数,完成后,我想将“result”值发送到下一个活动或post并保存到mysql数据库 以下是我的主要活动代码: ... private List<
...
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();
...
});
...
。。。
私有列表listDetails=new ArrayList();
私人回收适配器;
@BindView(R.id.recyclerView)
回收视图回收视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_视图);
把(这个)绑起来;
viewAdapter=new RecyclerAdapter(此,列表详细信息);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(viewAdapter);
getMyData();
}
...
私有void getMyData(){
改装改装=新改装.Builder()
.baseUrl(AppConfig.URL\u MAIN)
.addConverterFactory(GsonConverterFactory.create())
.build();
...
});
...
我的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) {
...
}
}
。。。
私人语境;
私人名单详情;
公共RecyclerAdapter(上下文、列表详细信息){
this.context=上下文;
this.listDetails=listDetails;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.list_视图,parent,false);
视窗支架=新视窗支架(v);
报税表持有人;
}
@凌驾
公共无效onBindViewHolder(最终视图持有人,最终整型位置){
final Details getSet=listDetails.get(位置);
holder.tvName.setText(getSet.getName());
holder.numberPickerTotalWin.setValueChangedListener(新的ValueChangedListener(){
@凌驾
public void值已更改(int值、ActionEnum操作){
Toast.makeText(上下文、位置+值+“单击”,Toast.LENGTH_SHORT.show();
}
});
}
@凌驾
public int getItemCount(){
返回listDetails.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
@BindView((R.id.nP))
NumberPicker numberPickerTotalWin;
@BindView(R.id.tvName)
文本视图tvName;
公共视图持有者(视图项视图){
超级(项目视图);
ButterKnife.bind(这个,itemView);
setOnClickListener(这个);
}
@凌驾
公共void onClick(视图){
...
}
}
检查代码
你的活动。。。实现RecycleServiceItemClick
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();
...
});
private List listDetails=new ArrayList();
私人回收适配器;
@BindView(R.id.recyclerView)
回收视图回收视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_视图);
把(这个)绑起来;
viewAdapter=new RecyclerAdapter(this,listDetails,this);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(viewAdapter);
getMyData();
}
...
私有void getMyData(){
改装改装=新改装.Builder()
.baseUrl(AppConfig.URL\u MAIN)
.addConverterFactory(GsonConverterFactory.create())
.build();
...
});
循环水泵
private recycleServiceItem点击mListener;
公共RecyclerAdapter(上下文上下文、列表详细信息、RecyclerServiceItemClick侦听器){
this.context=上下文;
this.listDetails=listDetails;
this.mListener=侦听器;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.list_视图,parent,false);
ViewHolder=新的ViewHolder(v,mListener);
报税表持有人;
}
@凌驾
公共无效onBindViewHolder(最终视图持有人,最终整型位置){
final Details getSet=listDetails.get(位置);
holder.tvName.setText(getSet.getName());
holder.numberPickerTotalWin.setValueChangedListener(新的ValueChangedListener(){
@凌驾
public void值已更改(int值、ActionEnum操作){
Toast.makeText(上下文、位置+值+“单击”,Toast.LENGTH_SHORT.show();
}
});
}
@凌驾
public int getItemCount(){
返回listDetails.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
@BindView((R.id.nP))
NumberPicker numberPickerTotalWin;
@BindView(R.id.tvName)
文本视图tvName;
公共视图持有者(视图项视图){
超级(项目视图);
ButterKnife.bind(这个,itemView);
setOnClickListener(这个);
}
@凌驾
公共void onClick(视图){
if(mListener!=null){
//如果需要,可以访问当前位置->getLayoutPosition()
mListener.yourMethod();
}
}
公共接口RecycleServiceItemClick{
作废你的方法();
}
}
什么都没有发生,仍然没有更改:(如何将值传递给文本?您的问题不是很清楚,请尝试输入完整的代码
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();
}
}