2014-07-01 2 views
0

버튼이 하나 있는데 버튼을 클릭하면 bussiness 로직이 실행되고이 버튼이 숨겨지기를 원합니다. 14 버튼이있어서 14 메소드 onClick을 오버라이드합니다. 단추. 거기에 또 다른 좋은 방법이 있습니까? 오버 라이더 onclick 메서드를 1 번 사용합니다. 도와주세요. 고마워.방법에 따라 일부 버튼 숨기기

<Button 
    android:id="@+id/btnHint01" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_above="@+id/btnHint08" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="5dp" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint08" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignLeft="@+id/btnHint01" 
    android:layout_alignParentBottom="true" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint02" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_above="@+id/btnHint08" 
    android:layout_toRightOf="@+id/btnHint01" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint04" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignBaseline="@+id/btnHint03" 
    android:layout_alignBottom="@+id/btnHint03" 
    android:layout_toRightOf="@+id/btnHint03" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint03" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_above="@+id/btnHint08" 
    android:layout_toRightOf="@+id/btnHint02" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint05" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_above="@+id/btnHint08" 
    android:layout_toRightOf="@+id/btnHint04" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint06" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_above="@+id/btnHint08" 
    android:layout_toRightOf="@+id/btnHint05" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint07" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignBaseline="@+id/btnHint06" 
    android:layout_alignBottom="@+id/btnHint06" 
    android:layout_toRightOf="@+id/btnHint06" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint09" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint01" 
    android:layout_toRightOf="@+id/btnHint01" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint10" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint02" 
    android:layout_toRightOf="@+id/btnHint02" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint11" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint05" 
    android:layout_toRightOf="@+id/btnHint03" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint12" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint04" 
    android:layout_toRightOf="@+id/btnHint04" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint13" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint05" 
    android:layout_toRightOf="@+id/btnHint05" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<Button 
    android:id="@+id/btnHint14" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_below="@+id/btnHint06" 
    android:layout_toRightOf="@+id/btnHint06" 
    android:text="@string/none" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

답변

0

이 같은 onClick에 swict 케이스를 사용할 수 있습니다

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (checkedId) { 
     case R.id.btn1: 
      //your business logic 
      break; 

     case R.id.btn2: 
      //Your businesslogic 
      break; 
     } 
    } 
}); 

편집 : 나는 당신의 활동이 android.view.View.OnClickListener를 구현하는 것을 추정했다. 그리고 다음을 추가했습니다 :

btn1.setOnClickListener(this); 

onCreate으로 초기화하십시오.

희망이 있습니다.

+0

여기서 클래스는 'OnClickListener'를 구현해야합니다. – Aniruddha

+0

@Aniruddha : 저는 이것을 알고 있습니다. OP가 그것을 알 것이라고 가정 했었습니다. –

0

두 가지 방법이 있습니다. 1 스위치 케이스 2의 경우 다른

0
public class YourActivity extends Activity(or Fragment) implements View.OnClickListener{ 
     Button btn1,btn2,btn3; 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
      case R.id.btn_id1: 
       //your some logic 
       break; 

      case R.id.btn_id2: 
       //Your some logic 
       break; 
      } 
     } 
    } 

    //And after you init buttons set for each clickListener 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      btn1=..; 
      btn2=..; 
      btn1.setOnClickListener(this); 
      btn2.setOnClickListener(this); 
     } 
    } 
0
당신은

public class MainActivity extends Activity implements OnClickListener { 

} 

처럼 활동에 OnClickListener를 구현하고 대체 할 수 있습니다

@Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId) { 
     case R.id.btn1: 
      //do what u need to do here 
      break; 

     case R.id.rb_key_mismatch: 
      //do what u need to do here 
      break; 
     } 
    } 
0

는 OnClickListener를에게

공용 클래스 MainActivity를 구현 확장 활동에서 OnCl 구현 ickListener {

공공 무효에서 onCreate (번들 savedInstanceState) {

Button b1 = (Button) findViewById(R.id.b1); 
Button b2 = (Button) findViewById(R.id.b2); 
b1.setOnClickListener(this); 
b2.setOnClickListener(this); 

}

@Override 공공 무효 온 클릭 (보기 V) {

스위치 (v.getId()) {

case R.id.b1: 
    //do something 
    break; 
    case R.id.b2: 
    //do something 
    break; 
} 
y

스위치 케이스는 if-else보다 유지 관리하기가 쉽고이 구현에서는 많은 클래스 변수를 만들 필요가 없습니다.

관련 문제