IllegalStateException:在活动类中找不到方法...(视图)

问题描述 投票:0回答:1

我不明白为什么会收到此错误消息。我的方法是在活动课上,拼写是正确的。

02-09 18:23:57.211: E/AndroidRuntime(19939): FATAL EXCEPTION: main
02-09 18:23:57.211: E/AndroidRuntime(19939): Process: stacy.example.assignment3_stacy_v1, PID: 19939
02-09 18:23:57.211: E/AndroidRuntime(19939): java.lang.IllegalStateException: Could not find a method startRhythmandAnimation(View) in the activity class stacy.example.assignment3_stacy_v1.Assignment3MainActivity for onClick handler on view class android.widget.Button with id 'startbutton'

MainActivity.java

    package stacy.example.assignment3_stacy_v1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.EditText;

public class Assignment3MainActivity extends Activity {


    private View mMileTimeGoal;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_assignment3_main);
        mMileTimeGoal = findViewById(R.id.miletimegoal);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.assignment3_main, menu);
        return true;
    }

    public void startRhythmandAnimation () {
        String MileTime = mMileTimeGoal.getContext().toString();
        String[] time_array = MileTime.split(":");
        int hours = Integer.parseInt(time_array[0]);
        int minutes = Integer.parseInt(time_array[1]);
        int seconds = Integer.parseInt(time_array[2]);
        int duration = 3600 * hours + 60 * minutes + seconds;
        int steps_per_second = 3;

        int running_rate = duration * steps_per_second;

        View rightfoot = findViewById(R.id.rightfoot);
        View leftfoot = findViewById(R.id.leftfoot);

        rightfoot.setVisibility(View.VISIBLE);
        Animation anim = AnimationUtils.makeInChildBottomAnimation(this);
        rightfoot.startAnimation(anim);

        leftfoot.setVisibility(View.VISIBLE);
        leftfoot.startAnimation(anim);
    }

    public void resetTimetoZeroes () {
        String MileTime = mMileTimeGoal.getContext().toString();
        //Int MileTime = 0;
    }

}

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Assignment3MainActivity" >

<ImageView
    android:id="@+id/leftfoot"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/rightfoot"
    android:layout_toLeftOf="@+id/rightfoot"
    android:src="@drawable/leftfoot" />

<EditText
    android:id="@+id/miletimegoal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="18dp"
    android:ems="10"
    android:inputType="time"
    android:hint="Mile Time Goal?" />

<ImageView
    android:id="@+id/rightfoot"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="74dp"
    android:layout_marginRight="36dp"
    android:src="@drawable/rightfoot" />

<Button
    android:id="@+id/startbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/leftfoot"
    android:layout_alignRight="@+id/leftfoot"
    android:onClick="startRhythmandAnimation"
    android:text="@string/start_button" />

<Button
    android:id="@+id/resetbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/startbutton"
    android:layout_alignBottom="@+id/startbutton"
    android:layout_alignLeft="@+id/rightfoot"
    android:text="@string/reset_button"
    android:onClick="resetTimetoZeroes" />

android illegalstateexception
1个回答
2
投票

您需要包含一个

View
参数,系统才能找到您的方法:

public void startRhythmandAnimation (View view)
© www.soinside.com 2019 - 2024. All rights reserved.