无法解决太多方法

时间:2018-05-14 16:05:20

标签: java android

这是我的学校项目,是的,我还是Android编程的新手。我不知道为什么这些错误消息会一直显示出来。

  

错误消息是:

  • 一个。无法解决方法' onCreate(savedInstanceState)'在超级'

    之后的部分
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.workouttimer);
    
  • 湾无法解决方法' findViewById(int)'

    mTextViewCountDown = findViewById(R.id.text_view_countdown);
    
    mButtonStartPause = findViewById(R.id.button_start_pause);
    mButtonReset = findViewById(R.id.button_reset);
    
  • ℃。无法解决方法' 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(实际上这是我的第二个主要活动java,因为我的应用程序是多活动的)

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>

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:2)

将timer.java文件更改为此文件,然后重建

public class timer extends AppCompatActivity {

答案 1 :(得分:1)

您覆盖的所有方法都来自AppCompatActivity或Activity.Hence类,要在您的类中使用这些方法,您必须扩展类AppCompatActivity或Activity,如 -

public class timer extends AppCompatActivity{
//Your code
}

注意 - 请在创建类时按照惯例以大写字母开头。