本文介绍了正在从适配器类更新片段TextView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用片段显示包含项目的回收器视图。
并且我有一个回收器视图的Adapter类。
每次用户单击回收视图项目时,我都需要更改片段TextView中的文本。
这是适配器类中的onClick方法:
@Override
public void onClick(View v) {
int position = getAdapterPosition();
//showPopupMenu(v, position);
String positi = marcaList.get(position).getnombre();
Integer positid = marcaList.get(position).getId();
Log.d("HOLA PERFIL", "RESPONSE 2 valor=" + position);
Toast.makeText(mCtx,"Seleccionados dispositivos de la marca "+positi, Toast.LENGTH_SHORT).show();
SharedPreferences prefs3 =
mCtx.getSharedPreferences(MISDATOS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor3 = prefs3.edit();
editor3.putString("nombreMarcaNuevoDisp",positi);
editor3.putInt("idMarcaNuevoDisp",positid);
editor3.apply();
}
我需要的是使用所选列表项中的值更新片段中TextView中的文本。
编辑
适配器类:
public class MarcasAdapterNuevoDisp extends RecyclerView.Adapter<MarcasAdapterNuevoDisp.ProductViewHolder> {
public static String MISDATOS= "MisDatos";
private Context mCtx;
private List<Marca> marcaList;
private SharedPreferences mPref;
public FragmentManager f_manager;
public MarcasAdapterNuevoDisp(Context mCtx, List<Marca> marcaList) {
this.mCtx = mCtx;
this.marcaList = marcaList;
}
public interface OnDataChangeListener{
public void onDataChanged(int size);
}
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.marcas_list, null);
return new ProductViewHolder(view);
}
@Override
public void onBindViewHolder(ProductViewHolder holder, int position) {
Marca marca = marcaList.get(position);
String url = "https://jogua.es/administrar/application/admin/iconos/";
//loading the image
Glide.with(mCtx)
.load(url+marca.geticono())
.into(holder.imageView);
}
@Override
public int getItemCount() {
return marcaList.size();
}
class ProductViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textViewTitle;
ImageView imageView;
public ProductViewHolder(View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
//showPopupMenu(v, position);
String positi = marcaList.get(position).getnombre();
Integer positid = marcaList.get(position).getId();
Log.d("HOLA PERFIL", "RESPONSE 2 valor=" + position);
Toast.makeText(mCtx,"Seleccionados dispositivos de la marca "+positi, Toast.LENGTH_SHORT).show();
SharedPreferences prefs3 =
mCtx.getSharedPreferences(MISDATOS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor3 = prefs3.edit();
editor3.putString("nombreMarcaNuevoDisp",positi);
editor3.putInt("idMarcaNuevoDisp",positid);
editor3.apply();
}
}
}
推荐答案
您可以使用以下方式
为片段添加字段并更改适配器构造函数,如下所示
private MarcasFragment fragment;
public MarcasAdapterNuevoDisp(MarcasFragment fragment, List<Marca> marcaList) {
this.mCtx = fragment.getActivity();
this.fragment = fragment;
this.marcaList = marcaList;
}
然后在onClick方法中
@Override
public void onClick(View v) {
fragment.textView.setText(yourString); //As your textview is public, you can access it from here.
}
这篇关于正在从适配器类更新片段TextView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!