2012-10-29 4 views
0

start()를 호출하는 방법을 알 수 없습니다. 클래스에서 방법은 내가 그것은 동일한 패키지에 만들어진 그것은 오류가 가 비에 정적 참조를 만들 수 없습니다 여기에 내가 com.example.chrono.Chronometer.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();   } 
     }); 
    } 

} 

이다 크로노 미터라고합니다 유형의 크로노 미터에서 -static 방법의 시작()

+0

이 라인을 대체하십시오. com.example.chrono.Chronometer.start(); with test.class(); 시도해보십시오. – Aamirkhan

+0

'start()'함수를 보여주세요 !! 어쩌면'static '함수를'static' 함수로 부르려고 시도 할 것입니다! –

답변

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(); 
     } 
    }); 
2

당신은 (세부 사항에 들어가기없이)이 test.start();

2

static 방법처럼이 메소드를 호출 할 수있는 것은 MyClass.staticMethod();와 같은 클래스에서 직접 호출하는 방법입니다. instance 메서드를 호출하려고하는데이 메서드는 MyClass 인스턴스에서 호출해야합니다. ...........

0
public class tests extends Activity implements OnChronometerTickListener { 
} 

test.start();//since, test is an instance of your class. 
이 같은 클래스를 넣어 :이 경우, 방법의 시작은 정적이 아니라 인스턴스 메서드이며, 사용하여 호출해야
0

- 사용 Composition방법 다른 클래스에 액세스 할 수 있습니다.

- 테스트 클래스에서 크로노 미터 인스턴스를 생성하고 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();   
     } 
    }); 
    } 

} 

몇 가지 중요한 것들 :

- 클래스 이름, 예를 들어 11 번째로 알파벳 사용 대문자 .. 테스트

- 만들기 적절한 access modifiers이 클래스와 그것의 만남에 사용될 것임에 틀림 없다. hods를 다른 클래스에서 볼 수 있도록하기 위해

관련 문제