2011-09-12 3 views
-1

기본 뷰에서 버튼에 대한 클릭 수신기를 구현하려고합니다. 내 코드는 다음android에서 OnClickListener 구현시 문제 발생

protected void onCreate(Bundle savedValues) { 
    ... 
    // Capture our button from layout 
    Button button = (Button)findViewById(R.id.btnFinish); 
    // Register the onClick listener with the implementation above 
    button.setOnClickListener(mFinishListener); 
    ... 
} 

private OnClickListener mFinishListener = new OnClickListener() { 
    public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 

같은 것입니다하지만 일을 할 생각이 없다

The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (DialogInterface.OnClickListener) MobileTrackerActivity.java /MobileTracker/src/com/example/mobiletracker line 37 Java Problem 

을 다음과 같이 나에게 오류를 보여줍니다. 도와주세요. 당신은 mFinishLinstener 변수의 인스턴스를 올바른 인터페이스를 사용하지 않는

답변

2

...

당신이 가져 오기가 DialogInterface을 지정하고 그 뷰를 혼란이 가능하다.

명시 적으로 View.OnClickListener을 지정하십시오.

private View.OnClickListener mFinishListener = new View.OnClickListener() { 
    public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 
1

이 코드 :::

final Button button = (Button) findViewById(R.id.btnFinish); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
      } 
     }); 
0

는 단순히이 하나하려고 시도 .. 당신은 또한 코드를 아래와 같이 사용할 수 있습니다

button.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 
0

Button button = (Button)findViewById(R.id.btnFinish); 

button.setOnClickListener(new View.OnClickListener(){ 
@Override 
public void onClick(View v) 
{ 
    //Write Your code here 
} 
}); 
0

당신 또한 XML에서 onclick을 선언 할 수 있습니다.

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="buttonClick" /> 

그리고 코드에서 당신은 함수 정의 할 : 버튼의 클릭 이벤트에 구현하는 내 의견으로는 가장 좋은 방법으로 당

public void buttonClick(View view) 
{ 
    // handle click 
} 
2

합니다.

액티비티의 버튼에 OnClickListener를 적용하는 대신 android : onClick 속성을 사용하여 XML 레이아웃의 버튼에 메서드를 할당 할 수 있습니다. 예 :

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="@string/self_destruct" 
    android:onClick="selfDestruct" /> 

이제 사용자가 버튼을 클릭하면 Android 시스템에서 활동의 selfDestruct (View) 메소드를 호출합니다. 이 작업을 수행하려면 메서드가 public이어야하며 View를 유일한 매개 변수로 받아 들여야합니다. 예 :

참고 : 위의 코드는 Android SDK - Button입니다.

+1

이전에 알려지지 않았던 몇 가지 것이 궁금합니다 +1 –