在片段中使用Runnable

时间:2019-11-09 10:45:05

标签: java android

我正在尝试在一个片段中创建一个秒表功能。 在创建片段视图时,“我的功能”一直崩溃。

从我检查的结果来看,这是因为可运行。 使用Runnable在哪里做错了? 任何帮助都会很棒:)


public class StopwatchFragment extends Fragment {
    public static boolean startRun;
    public static int seconds=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("Right", "onCreate()");
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        Log.i("Right", "onCreateView()");
        View view = inflater.inflate(R.layout.fragment_timer, container, false);

        if(savedInstanceState != null){
            seconds = savedInstanceState.getInt("seconds");
            startRun=savedInstanceState.getBoolean("startRun");
        }

        final TextView timeView = view.findViewById(R.id.time_view);
        final Handler handler = new Handler();
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                int hours = seconds/3600;
                int minutes = (seconds%3600)/60;
                int secs = seconds%60;

                String time = String.format("%d:%02d:%02d", hours, minutes, secs);

                timeView.setText(time);

                if(startRun){
                    seconds++;
                }

                handler.postDelayed(this, 100);
            }
        };
        handler.post(runnable);

        return view;
    }

0 个答案:

没有答案