方法未定义类型

时间:2015-02-02 17:32:34

标签: java android string methods packages

我正在尝试将“mainActivity”中的字符串传递给同一包中的“GuassAlgorithm”类中的方法“getDate(String s)”。

该方法返回一个字符串。

但是,在方法的两次调用中,我得到“方法getDate(String)未定义类型MainActivity”。 (String date = getDate(“date”)是多余的,它是验证错误是否可重复)

我已将评论置于相关代码行之上。

以下是主要活动:

package dayOfWeekApp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;
import com.example.com.piercestudio.R;

import dayOfWeekApp.GuassAlgorithm;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//方法getDate(String)未定义此行的类型MainActivity

String date = getDate("date");

    final Button calculateButton = (Button) findViewById(R.id.button1);
    final TextView resultView = (TextView) findViewById(R.id.textView1);
    final EditText editTextField = (EditText) findViewById(R.id.editText1);


    calculateButton.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){

//对于新的View.OnClickListener(){}

类型,未定义方法getDate(String)
            resultView.setText(getDate("10/25/1980"));
        }

    });        
}

下面是GaussianAlgorithm类。

}

package dayOfWeekApp;

public class GuassAlgorithm {

public String getDate(String s){

    s = "10/25/1980";

    int day = Integer.parseInt(s);
    String weekDay = "error";

    //
    int centuries[][] = {{4, 1700}, {2,1800}, {0,1900}, {6,2000}, {4,2100}, {2,2200}, {0, 2300}, {6,2400}, {4, 2600}};
    Object months[][] = {{1, "January", 0, 6}, {2, "February", 3, 2},{3, "March", 3, 3}, {4, "April", 6, 6}, {5, "May", 1, 1}, {6, "June", 4, 4}, {7, "July", 6, 6}, {8, "August", 2, 2}, {9, "September", 5, 5}, {10, "October", 0, 0}, {11, "November", 3, 3}, {12, "December", 5, 5}};
    Object days[][] = {{0, "Sunday"}, {1, "Monday"}, {2, "Tuesday"},{3, "Wednesday"}, {4, "Thursday"}, {5, "Friday"}, {6, "Saturday"}};

    //t.charAt(0)[]
    int yearInt = Integer.parseInt(s.substring(6, 8)) * 1000;
    weekDay = Integer.toString(yearInt);

        return weekDay;
}
}

不要因为我使用数组而取笑我。我习惯了Excel。

1 个答案:

答案 0 :(得分:0)

您需要在对象的实例上访问它:

GuassAlgorithm ga = new GuassAlgorithm();
ga.getDate("10/25/1980");

或者将算法更改为静态并以这种方式访问​​:

public static String getDate(String s) { ... }

GuassAlgorithm.getDate("10/25/1980")

正在发生的事情是它在当前上下文中寻找getDate方法但它并不存在。所以你必须提供上下文。