在activity里控制viewpager中fragment里的textview和button
时间: 2023-09-18 09:15:52 浏览: 155
要在Activity中控制ViewPager中Fragment里的TextView和Button,可以通过以下步骤实现:
1. 在Fragment中定义TextView和Button的变量,并在onCreateView()方法中初始化它们:
```
public class MyFragment extends Fragment {
private TextView mTextView;
private Button mButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
mTextView = view.findViewById(R.id.text_view);
mButton = view.findViewById(R.id.button);
return view;
}
}
```
2. 在Activity中获取ViewPager中当前显示的Fragment,并通过Fragment的变量来控制其中的TextView和Button:
```
public class MyActivity extends AppCompatActivity {
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity_layout);
mViewPager = findViewById(R.id.view_pager);
// 获取当前显示的Fragment
MyFragment currentFragment = (MyFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.view_pager + ":" + mViewPager.getCurrentItem());
// 控制其中的TextView和Button
if (currentFragment != null) {
currentFragment.mTextView.setText("Hello World!");
currentFragment.mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something
}
});
}
}
}
```
注意,在获取当前显示的Fragment时,需要通过ViewPager的id和当前显示的位置来获取。这里使用了一个特殊的字符串来获取Fragment,其中"android:switcher:"是固定的前缀,后面跟着ViewPager的id和当前显示的位置。
阅读全文