简体   繁体   English

更改值recycleview.adapter并将其保存到mainactivity中的textview吗?

[英]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,该怎么做?

it will be like this, 就像这样 样品

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM