Android 如何在适配器类中获取活动的TextView,而该TextView不在recyclerView的行中?
如何在RecycleServiceAdapter类中获取活动的文本视图,并且文本视图不在RecycleView项行的布局中。与在RecycleServiceAdapter中一样,我们重写方法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
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。请更正绿色复选标记并将答案向上,以便对其他人有所帮助@马什霍德卡德尔巴蒂很高兴能帮助你。