Android 如何从recyclerview适配器内部访问活动的外部视图
我用TextView创建了一个活动,RecyclerView。 我想从RecyclerView内部访问父活动TextView。 请注意,我已经在RecyclerView中加载了数据 请给出访问父活动文本视图的任何解决方案Android 如何从recyclerview适配器内部访问活动的外部视图,android,android-layout,android-recyclerview,Android,Android Layout,Android Recyclerview,我用TextView创建了一个活动,RecyclerView。 我想从RecyclerView内部访问父活动TextView。 请注意,我已经在RecyclerView中加载了数据 请给出访问父活动文本视图的任何解决方案 TextView textView; // Your TextView @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
TextView textView; // Your TextView
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize TextView so you can access it later
textView = (TextView) findViewById(R.id.text_message);
}
}
参考此代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_marginTop="20dip"
android:background="@android:color/holo_orange_dark"
android:text="MY TEXT VIEW"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="20sp"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
现在,从我的自定义适配器“onBindViewHolder”中,我想访问我的父活动文本视图(tv)。敬请告知
@Override
public void onBindViewHolder(final CartViewHolder holder, int position) {
....
}
父类的对象应该在适配器类中创建,并且应该设置为等于适配器类中构造函数中父类的引用。 您的适配器类构造函数应该如下所示:
ParentActivity mParentActivity;
public custom_Adapter(ParentActivity parentActivity,Something Else){
this.mParentActivity=parentActivity;
}
mParentActivity是父类的对象,可用于访问父类中的任何公共对象,如mParentActivity.name理想情况下,在父活动的onCreate()中,您可以指定一个实例变量来保存对TextView的引用
TextView textView; // Your TextView
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize TextView so you can access it later
textView = (TextView) findViewById(R.id.text_message);
}
}
现在,您可以从适配器的重写方法中访问TextView
@Override
public void onBindViewHolder(final CartViewHolder holder, int position) {
textView.setText("text here");
}
分享一些代码。。!!你设置了布局充气机,不是吗?(您没有添加代码)。。。webweb上有很多例子,这里有一个:@AsfK,我已经在RecyclerView中加载了数据,没有问题。我想访问我的家长活动文本视图(电视)。@jankigadhiya添加了代码供您参考