首页 文章

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

提问于
浏览
1

如何在RecyclerViewAdapter类和 TextView is not in layout 行中获取Activity的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 So please Help to do that work. Image中的TextView值以反映布局如下:

enter image description here

3 回答

  • 2

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

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

    In Adapter class just call that static method

    News.update_counter(String.valueOf(counter));
    
  • 1
    • 从活动传递时,应将Textview作为适配器中的参数传递

    • 第二,你应该通过使用接口来完成 .

    • 另一个选项是您可以使用Object of Activity获取textview .

    喜欢这个 MyActivity.java

    MyActivity myActivity;
     public TextView tv_name;
    

    Adapter.java

    myActivity.tv_name.setText("InsaneCat");
    

    希望这对你有所帮助

  • 2

    得到它

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

相关问题