mva*_*sco 3 android android-adapter android-recyclerview
我正在使用一个片段来显示带有项目的回收视图。
我有一个用于 recyclerview 的 Adapter 类。
每次用户单击 recyclerview 项目时,我都需要更改片段 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();
}
Run Code Online (Sandbox Code Playgroud)
我需要的是使用所选列表项中的值更新片段中 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方式,
添加片段字段并更改适配器构造函数,如下所示,
private MarcasFragment fragment;
public MarcasAdapterNuevoDisp(MarcasFragment fragment, List<Marca> marcaList) {
this.mCtx = fragment.getActivity();
this.fragment = fragment;
this.marcaList = marcaList;
}
Run Code Online (Sandbox Code Playgroud)
然后在你的 onclick 方法中,
@Override
public void onClick(View v) {
fragment.textView.setText(yourString); //As your textview is public, you can access it from here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1978 次 |
| 最近记录: |