Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在适配器类中获取活动的TextView,而该TextView不在recyclerView的行中?_Android_Android View_Android Context - Fatal编程技术网

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

Android 如何在适配器类中获取活动的TextView,而该TextView不在recyclerView的行中?,android,android-view,android-context,Android,Android View,Android Context,如何在RecycleServiceAdapter类中获取活动的文本视图,并且文本视图不在RecycleView项行的布局中。与在RecycleServiceAdapter中一样,我们重写方法 onBindViewHolder(ViewHolder holder, int position){ NewsModel newsModel=values.get(position); //to get the current object holder.news_title.set

如何在RecycleServiceAdapter类中获取活动的文本视图,并且文本视图不在RecycleView项行的布局中。与在RecycleServiceAdapter中一样,我们重写方法

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 extensed RecyclerView.ViewHolder
和ViewHolder中声明的用户界面,因此它只获取在
View v=inflater.inflate中的用户界面(R.layout.news_项,父项,false)但我想从活动的布局中获取ui,以便我可以更新适配器中的TextView值,因此请帮助完成该工作。反映布局的图像如下所示:

通过

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

我发现要在适配器类中使用的活动的UI。我们应该 它在活动中是静态的,然后创建一个静态方法来更新它的值,之后,每当我们想从适配器中更改它的值时,我们都会使用实际参数调用该静态方法,它将被更新

活动中

  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());
        }
    }
在适配器类中只需调用该静态方法

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

  • 当从“活动”传递时,应在适配器中将Textview作为参数传递
  • 其次,您应该使用接口来完成这项工作
  • 另一个选项是,您可以使用活动对象获取textview
像这样MyActivity.java

 MyActivity myActivity;
 public TextView tv_name;
myActivity.tv_name.setText("InsaneCat");
Adapter.java

 MyActivity myActivity;
 public TextView tv_name;
myActivity.tv_name.setText("InsaneCat");

希望这对您有所帮助

您可以随时了解活动内容并进行查找查看您永远不应该这样做。您的RecyclerView适配器应该只负责
RecyclerView
中显示的UI部分。Sir GVillani82!您的说法完全正确,RecyclerView只负责RecyclerView行中的ui,但是先生,我想从RecyclerViewAdapter构造函数中收到的上下文中获取活动的TextView先生,我如何从适配器类中的活动上下文中获取它。当你的活动结束了,先生!谢谢。它正在工作。先生,我使用了另一种方法。我想听听你的意见,如果我在活动类中将TextView设置为静态,并为它声明静态getter和setter。我的意思是对内存有什么影响吗?你真的很棒。在你的回答中,我发现将文本字段设置为静态,然后在我的活动类中创建一个静态方法,当我调用该静态方法时,它工作得很好。公共静态void update_counter(字符串值){try{counter_value.setText(value);}catch(Exception ex){Log.d(“Exception”,“Exception of type”+当我在Adapter中将它作为New.update(“counter_值”)调用时,这不是一个好的解决方案。你应该试着实现一个接口。@InsaneCat你能帮我吗。我以前创建过接口并使用过它们,但我无法理解如何实现一个接口来访问textView。请更正绿色复选标记并将答案向上,以便对其他人有所帮助@马什霍德卡德尔巴蒂很高兴能帮助你。