java - 无法解析太多方法

标签 java android

这是我的学校项目,是的,我在 Android 编程方面还是个新手。我不知道为什么这些错误消息不断出现。

The error messages is:

  • 一个。无法在“Super”之后的部分解析方法“onCreate(savedInstanceState)”

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.workouttimer);
    
  • b。无法解析方法 'findViewById(int)'

    mTextViewCountDown = findViewById(R.id.text_view_countdown);
    
    mButtonStartPause = findViewById(R.id.button_start_pause);
    mButtonReset = findViewById(R.id.button_reset);
    
  • c。无法解析方法 'onSaveInstanceState(android.os.Bundle)'

    @Override
    protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong("millisLeft", mTimeLeftInMillis);
    outState.putBoolean("timerRunning", mTimerRunning);
    outState.putLong("endTime", mEndTime);
    }
    
  • d.无法解析方法“onRestoreInstanceState(android.os.Bundle)”

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    
    mTimeLeftInMillis = savedInstanceState.getLong("millisLeft");
    mTimerRunning = savedInstanceState.getBoolean("timerRunning");
    updateCountDownText();
    updateButtons();
    

这是我的 timer.java(实际上这是我的第二个 mainactivity java,因为我的应用程序是多 Activity 的)

package com.example.lenovo.pomodorotest;


import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Locale;

public class timer {
private static final long START_TIME_IN_MILLIS = 600000;

private TextView mTextViewCountDown;
private Button mButtonStartPause;
private Button mButtonReset;

private CountDownTimer mCountDownTimer;

private boolean mTimerRunning;

private long mTimeLeftInMillis = START_TIME_IN_MILLIS;
private long mEndTime;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.workouttimer);

    mTextViewCountDown = findViewById(R.id.text_view_countdown);

    mButtonStartPause = findViewById(R.id.button_start_pause);
    mButtonReset = findViewById(R.id.button_reset);

    mButtonStartPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mTimerRunning) {
                pauseTimer();
            } else {
                startTimer();
            }
        }
    });

    mButtonReset.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resetTimer();
        }
    });

    updateCountDownText();
}



private void setContentView(int workouttimer) {
}

private void startTimer() {
    mEndTime = System.currentTimeMillis() + mTimeLeftInMillis;

    mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            mTimeLeftInMillis = millisUntilFinished;
            updateCountDownText();
        }

        @Override
        public void onFinish() {
            mTimerRunning = false;
            updateButtons();
        }
    }.start();

    mTimerRunning = true;
    updateButtons();
}

private void pauseTimer() {
    mCountDownTimer.cancel();
    mTimerRunning = false;
    updateButtons();
}

private void resetTimer() {
    mTimeLeftInMillis = START_TIME_IN_MILLIS;
    updateCountDownText();
    updateButtons();
}

private void updateCountDownText() {
    int minutes = (int) (mTimeLeftInMillis / 1000) / 60;
    int seconds = (int) (mTimeLeftInMillis / 1000) % 60;

    String timeLeftFormatted = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);

    mTextViewCountDown.setText(timeLeftFormatted);
}

private void updateButtons() {
    if (mTimerRunning) {
        mButtonReset.setVisibility(View.INVISIBLE);
        mButtonStartPause.setText("Pause");
    } else {
        mButtonStartPause.setText("Start");

        if (mTimeLeftInMillis < 1000) {
            mButtonStartPause.setVisibility(View.INVISIBLE);
        } else {
            mButtonStartPause.setVisibility(View.VISIBLE);
        }

        if (mTimeLeftInMillis < START_TIME_IN_MILLIS) {
            mButtonReset.setVisibility(View.VISIBLE);
        } else {
            mButtonReset.setVisibility(View.INVISIBLE);
        }
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong("millisLeft", mTimeLeftInMillis);
    outState.putBoolean("timerRunning", mTimerRunning);
    outState.putLong("endTime", mEndTime);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    mTimeLeftInMillis = savedInstanceState.getLong("millisLeft");
    mTimerRunning = savedInstanceState.getBoolean("timerRunning");
    updateCountDownText();
    updateButtons();

    if (mTimerRunning) {
        mEndTime = savedInstanceState.getLong("endTime");
        mTimeLeftInMillis = mEndTime - System.currentTimeMillis();
        startTimer();
    }
    }
    }
    }

这是我的 workouttimer.xml

  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <TextView
    android:id="@+id/text_view_countdown"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="00:00"
    android:textColor="@android:color/black"
    android:textSize="60sp" />

<Button
    android:id="@+id/button_start_pause"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text_view_countdown"
    android:layout_centerHorizontal="true"
    android:text="Studying!" />

<Button
    android:id="@+id/button_start_letsgetrest"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button_start_pause"
    android:layout_centerHorizontal="true"
    android:text="Lets Get Rest!" />

<Button
    android:id="@+id/button_reset"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text_view_countdown"
    android:layout_marginStart="11dp"
    android:layout_toEndOf="@+id/button_start_pause"
    android:text="reset"
    android:visibility="invisible"
    xmlns:tools="http://schemas.android.com/tools":visibility="visible"
    android:layout_marginLeft="11dp"
    android:layout_toRightOf="@+id/button_start_pause" />
   </RelativeLayout>

如有任何帮助,我们将不胜感激。谢谢

最佳答案

将你的 timer.java 文件改成这个然后重建

public class timer extends AppCompatActivity {

关于java - 无法解析太多方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50334643/

相关文章:

java - JSON解析问题

java - 如何读取和计算互联网上文​​件的哈希值

Android:释放数据库连接

java - 设置 tcp 服务器时出现 NoClassDefFound 错误

android - Fragment 的 getView() 在 OnClickListener 回调中返回 null

java - 数据结构在排序有限的项目时遇到麻烦

java - Jsoup 在文档中只找到 ~9000 个 <a> 标签的一半

android - 去电安卓

java - IDE独立Android界面设计器

java - Struts2注解@RequestParameter