如何在适配器类中获取活动的TextView,而TextView不在recyclelerView的行中?

时间:2017-12-09 11:52:17

标签: android android-view android-context

如何在RecyclerViewAdapter类中获取活动的TextView,并且 TextView不在布局的行中用于RecyclerView项目。在RecyclerViewAdapter中,我们重写方法

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,但我想从活动的布局中获取ui,以便我可以在Adapter中更新TextView值所以请帮助完成这项工作。反映布局的图片如下:

enter image description here

3 个答案:

答案 0 :(得分:2)

我发现要在Adapter类中使用的Activity的UI。我们应该做  它在Activity中静态,然后创建一个静态方法来更新它的值,之后每当我们想要从Adapter更改它的值时,我们将用实际参数调用该静态方法,它将被更新。我这样做如下

活动

  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());
        }
    }

在Adapter类中,只需调用静态方法

News.update_counter(String.valueOf(counter));

答案 1 :(得分:2)

  • 从活动
  • 传递时,应将Textview作为适配器中的参数传递
  • 第二,你应该通过使用接口来完成这个。
  • 另一个选择是你可以使用Object of Activity获得textview。

喜欢这个 MyActivity.java

 MyActivity myActivity;
 public TextView tv_name;

<强> Adapter.java

myActivity.tv_name.setText("InsaneCat");

希望这能帮到你

答案 2 :(得分:1)

通过

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