fragment适配器中如何写runOnUiThread
时间: 2024-05-04 14:22:29 浏览: 170
在 Fragment 中,如果需要更新 UI,需要使用 Activity 的 runOnUiThread 方法。在 Fragment 中,可以通过 getActivity() 方法获取到当前 Fragment 所依附的 Activity,然后调用其 runOnUiThread 方法更新 UI。
例如,在 Fragment 中使用 RecyclerView 和 FragmentPagerAdapter 来显示一个列表,可以使用以下代码来更新列表:
```java
public class MyFragment extends Fragment {
private RecyclerView recyclerView;
private MyAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
adapter = new MyAdapter(getContext());
recyclerView.setAdapter(adapter);
return view;
}
@Override
public void onResume() {
super.onResume();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
}
}
```
在这个例子中,我们在 Fragment 的 onResume 方法中调用了 Activity 的 runOnUiThread 方法来更新 RecyclerView 的数据。注意,这里我们需要在 Runnable 的 run 方法中进行 UI 更新操作,以确保更新操作在 UI 线程中执行。
阅读全文