오영택*_*오영택 1 multithreading android this fragment android-activity
我是安卓新手。我有一个由 ViewPager 和 TabLayout 组成的代码。它有 4 个片段。在我的 Fragment4 代码中,我想使用我在 GitHub 中获得的 CircleProgressView。要使用该代码,我应该使用 AsyncTask。它有“MainActivity.this.runOnUiThread(new Runnable){}”。但这段代码发生了错误。该消息是“MainActivity 不是封闭类”。我认为这意味着无法引用 MainActivity 类。如何调用“MainActivity.this.runOnUiThread()”?请告诉我如何修复代码。
这是我的代码的一部分。
public class Fragment4 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment4, container, false);
...
return rootView;
}
@Override
public void onStart() {
super.onStart();
}
private class LongOperation extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mCircleView.setValue(0);
mCircleView.spin();
}
});
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
mCircleView.setValueAnimated(42);
}
}
}
Run Code Online (Sandbox Code Playgroud)
MainActivity.this这只是获取 Activity 上下文的一种方法,但是还有多种其他方法可以获取此上下文。
getActivity()从当前 Activity 获取上下文getApplicationContext(),这是一个不同的上下文,对于所有活动都是相同的,但也应该在这里工作。getContext()从 Fragment 中使用来获取当前上下文。| 归档时间: |
|
| 查看次数: |
4834 次 |
| 最近记录: |