2014-02-10 63 views
1

我無法理解爲什麼我收到此錯誤消息。我的方法是在活動類中,拼寫是正確的。Android - IllegalStateException - 在活動類中找不到方法startRhythmandAnimation

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" /> 

回答

2

您需要包括對系統中的單個View參數來找到你的方法:

public void startRhythmandAnimation (View view) 
相關問題