2016-07-04 2 views
1
.... 
android:onClick = "activity1"; 
.... 

public void activity1(View view) 
{ 
..... 
} 

에 대한 View 형의 자신의 매개 변수가 왜 당신은 어떤보기 상에 OnClickListener를 설정할 수 있습니다는 왜 온 클릭 방법

+1

왜 없습니까? –

+0

어떤 유형을 기대합니까? 당신이보기의 유형을 당신이 그것을 잘 붙이지 않았 으면 좋겠다고 생각한다면 ... 그것을 유형 (예 : Textview v = (TextView)보기)으로 캐스팅하십시오. – Memme

+1

한 가지 이유는 여러보기에서 동일한 수신기를 재사용 할 수 있고 어떤 수신기를 클릭했는지 파악할 수 있기 때문입니다. – Blackbelt

답변

2

View 형의이 기능에 대한 매개 변수입니다. 즉, 청취자는 청취자를 어떤 요소로 설정했는지 알지 못합니다.

모든 요소는 onClickListener를 extend View에 설정할 수 있으므로 요소가 View인지 확실히 알고 있기 때문에 뷰를 제공합니다.

클릭하면 어떤 요소가 클릭되었는지 감지 할 수 있습니다. 원하는 경우 특정 요소로 캐스팅 할 수 있습니다.

0

동일한 onClick을 다른보기에서 사용할 수 있습니다. 따라서이 경우보기는 클릭 한 뷰를 식별하는 데 사용됩니다. 당신은이

public void activity(View view) 
{ 
    switch(view.getItemId()){ 

    case R.id.button1: 
    break; 
    case R.id.button2: 
    break; 
    case R.id.button3: 
    break; 

    } 
} 

이제 3 개 개의 버튼을 같은 온 클릭을 사용할 수 있습니다 할 수 android:onClick = "activity"

3 개 버튼이있는 경우 예 를 들어

.

+0

이것은'activity (Button view)'일 경우에도 효과가 있습니다. 실제로 질문에 답하지 않습니다. –

1

보기가 모든 위젯의 기본 클래스이므로 android에 있습니다.

예를 들어 TextView는 View를 확장하고 ImageView는 뷰를 확장합니다.

그리고 당신은 당신이 여러 다른 뷰 같은 방법을 사용할 수 있음을주는 getItemId 등 그래서

0

처럼,이보기가 제공하는 기본 기능을 사용할 수 있도록 지금보기 V = 새로운 텍스트 뷰()

을 쓸 수 있습니다 .

public void onActivityClick(View view){ 
    switch (view.getId()){ 
     case R.id.button1: 
      //do something(); 
      break; 
     case R.id.button2: 
      //do something(); 
      break; 
     case R.id.button3: 
      //do something(); 
      break; 
    } 
} 

모양을 활동 방법 onActivityClick에 아래의 코드를 이제

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="onActivityClick" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="onActivityClick" /> 

<Button 
    android:id="@+id/button3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="onActivityClick" /> 

을 시도 그래서 기본적으로 여러 위젯 같은 방법을 사용하고 응용 프로그램에서 방법의 수와 추가 코드를 저장할 수 있습니다.

희망이 도움이됩니다.