2011-09-24 6 views
1

다음은 내 프로젝트 중 하나에 대한 기본적인 스트라이프 다운 개요입니다. oncreate 외부에서 메서드를 사용하여 oncreate에서 선언 된 단추를 클릭 할 수 있지만 어떻게 할 수 없는지 알고 싶습니다.Android에서 oncreate 외부에있는 메서드의 버튼을 클릭하십시오.

내 코드는 다음과 같습니다. performClick()webButtonclickButton()의 코드를 사용할 수 있지만 작동하지 않습니다. 그게 가능하지 않다면 적어도 버튼을 클릭했을 때 시작하려고하는 의도를 시작하는 방법을 알고 싶습니다. clickButton() 메서드.

미리 감사드립니다.

public class cphome extends Activity { 
    static final int check =111; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button webButton = (Button) findViewById(R.id.button1); 
     webButton.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View view) { 
        Intent myIntent = new Intent(view.getContext(), web.class); 
        startActivity(myIntent); 
       } 

      }); 





    } 
    public void clickbutton(){ 
     webButton.performClick(); 
    } 
} 
+0

왜 작동하지 않습니까? 'clickbutton()'을 호출 할 때'onClick (view view)'int를 디버깅하려 했습니까? – Knickedi

+0

'onCreate' 메쏘드에서 변수 대신에'webButton' 필드를 만들지 않으시겠습니까? –

+0

당신이 Knickedi 말한했는데 오류 "webButton 확인할 수 없습니다" – Peter

답변

1

이것은 정말 이상한 패턴입니다. 대신 다음과 같이 할 것을 권합니다.

public class cphome extends Activity { 
    static final int check =111; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button webButton = (Button) findViewById(R.id.button1); 
     webButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        performClickAction(); 
       } 
      }); 

    } 

    public void performClickAction(){ 
     Intent myIntent = new Intent(this, web.class); 
     startActivity(myIntent); 
    } 
} 
+0

나는 그때 내가 "보기"에서 "보기를 해결할 수 없습니다"라는 새로운 의도에서 오류가 발생했습니다 – Peter

+0

내 잘못. 'view.getContext()'는 더 이상 이해가되지 않습니다. ;-)를 복사하여 붙여 넣으면 문제가 발생합니다. 'performClickAction'을 업데이트했습니다. – Knickedi

관련 문제