0

start();を呼び出す方法がわかりません。私が作ったクラスのメソッド同じパッケージにあり、クロノメーターと呼ばれています。ここでは私のクラスです。

    import java.lang.reflect.Method;
    import java.text.DecimalFormat;
    import com.example.chrono.Chronometer.OnChronometerTickListener;
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.os.SystemClock;
    import android.util.AttributeSet;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;

    public class tests extends Activity{
    Button start;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Chronometer test = new Chronometer(this);
        start = (Button) findViewById(R.id.bStart);

        start.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                com.example.chrono.Chronometer.start();         } 
        }); 
    }

}

エラーが発生しますcom.example.chrono.Chronometer.start();

エラーは、タイプChronometerから非静的メソッドstart()への静的参照を作成できないことです。

4

5 に答える 5

4

クラスのオブジェクトを使用して、他のクラスから非静的メソッドを呼び出すことができますChronometer

Chronometer test = new Chronometer(this);
    start = (Button) findViewById(R.id.bStart);

    start.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
        //    com.example.chrono.Chronometer.start();
            test.start(); 
         } 
    }); 
于 2012-10-29T04:38:21.953 に答える
2

このメソッドは次のように呼び出すことができますtest.start();

于 2012-10-29T04:38:57.797 に答える
2

staticメソッド(詳細には触れません)は、クラスなどから直接呼び出されるメソッドですMyClass.staticMethod();。MyClassのインスタンスinstanceから呼び出す必要のあるメソッドを呼び出そうとしています。この場合、メソッドstartは静的ではなく、インスタンスメソッドであり、次を使用して呼び出す必要があります。

test.start();//since, test is an instance of your class.
于 2012-10-29T04:40:43.447 に答える
0

-別のクラスのメソッドCompositionアクセスするために使用します。

-テストクラスにChronometerのインスタンスを作成し、start()メソッドにアクセスします。

例えば:

public class tests extends Activity{
Button start;
Chronometer crono = new Chronometer();   // Instance of Chronometer

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Chronometer test = new Chronometer(this);
    start = (Button) findViewById(R.id.bStart);

    start.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            crono.start();        
        } 
    }); 
  }

}

いくつかの重要なこと:

-クラス名の最初のアルファベットには大文字を使用します。例:テスト

-access modifiers他のクラスから見えるようにするために、クラスとそのメソッドで使用される適切なものについて確認してください

于 2012-10-29T04:50:16.220 に答える
0
public class tests extends Activity implements OnChronometerTickListener {
}

あなたのクラスをこのように置いてください..........。

于 2012-10-29T04:47:38.993 に答える