更改值recycleview.adapter并将其保存到mainactivity中的textview? [英] Change value recycleview.adapter and save it to textview in mainactivity?

查看:172
本文介绍了更改值recycleview.adapter并将其保存到mainactivity中的textview?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我更改recycleview.adapter中的值时,我想在mainactivity中将其设置为textview的值,怎么做?

When I change the value from recycleview.adapter, i want to set it the value to textview in mainactivity, how to do it?

它会是这样的,

it will be like this,

从我的json中回收的回收数据,因此它将是随机的和许多数据,
当我将总赢的值更改或添加到0以上时,将显示底部的textview,并且total all将从我添加的数据中计算,当它完成时,我想发送结果 值到下一个活动或发布并保存到mysql dbase,

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,

这里我的MainActivity代码:

here my code of 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();
        ...
    });

    ...

我的RecycleAdapter代码:

My RecycleAdapter code :

    ...

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) {
        ...
    }
}


推荐答案

检查代码

YourActivity ...实现RecyclerViewItemClick

YourActivity ... implements 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();

}
    }

这篇关于更改值recycleview.adapter并将其保存到mainactivity中的textview?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆