如何在适配器 class 中获取 activity 的 TextView 而该 TextView 不在 recyclerView 的行中?

How to get TextView of an activity in an Adapter class while that TextView is not in row of recyclerView?

如何在 RecyclerViewAdapter class 中获取 Activity 的 TextView 并且 TextView 不在 RecyclerViewAdapter 中的 RecyclerView item.As 行的布局 中我们重写方法

onBindViewHolder(ViewHolder holder, int position){
   NewsModel newsModel=values.get(position);  //to get the current object
        holder.news_title.setText(newsModel.getTitle());
        holder.news_body.setText(newsModel.getDescription());
        holder.news_published_at.setText("Date "+GiveMeDate(values.get(position).getDate()));}  

并且因为它只获取在 ViewHolder extends RecyclerView.ViewHolder 中声明的那些,而 ViewHolder 将只获取 View v = inflater.inflate(R.layout.news_item, parent, false); 中的 ui 但我想从 activity的布局,以便我可以更新 Adapter 中的 TextView 值 所以请帮助完成这项工作。 反映布局的图像如下:

之前获取
TextView requiredTextView = (TextView) ActivityName.findViewById(R.id.requiredTextView);

我发现 Activity 的 UI 可以在 Adapter class 中使用。我们应该让 它在 Activity 中是静态的,然后创建一个静态方法来更新它的值,之后每当我们想从 Adapter 更改它的值时,我们将使用实际参数调用该静态方法并将其更新。我按如下方式进行

在Activity

  public static TextView counter_value;
   public static  void update_counter(String value){
        try{
            counter_value.setText(value);
        }
        catch (Exception ex){
            Log.d("Exception","Exception of type"+ex.getMessage());
        }
    }

在适配器中 class 只需调用该静态方法

News.update_counter(String.valueOf(counter));
  • 当您从 activity
  • 传递时,您应该将 Textview 作为参数传递给适配器
  • 其次,您应该使用界面完成此操作。
  • 另一种选择是您可以使用 Activity 的对象获取文本视图。

像这样MyActivity.java

 MyActivity myActivity;
 public TextView tv_name;

Adapter.java

myActivity.tv_name.setText("InsaneCat");

希望对您有所帮助