2012-07-28 3 views
0

아무도 말해 줄 수 있습니까? 두 액션에 동일한 버튼을 사용할 수 있습니까? 내 활동에서 하나의 버튼을 사용하여 일부 값을 계산하고 같은 버튼을 다시 누른 다음 모든 필드를 재설정 한 후 계산 한 것과 같습니다. 이 응용 프로그램에서처럼 http://www.craziness.com/games/play-love-tester/ 버튼을 눌러서 사랑을 테스트 할 때 을 누른 다음 다시 같은 버튼을 누르면 모든 필드가 재설정됩니다. 위의 문제에 대한 내 활동에 무엇을 사용해야합니까?두 개의 동작에 하나의 버튼 사용

+0

어쩌면 [토글 버튼 (http://developer.android.com/guide/topics/ui/controls를 사용 /togglebutton.html) –

답변

3

프로그램 상태를 나타내는 전역 변수를 만든 다음 필요할 때이 값을 변경할 수 있습니다. ButtonOnClickListenerif 문을 작성하여이 변수를 확인하고 연관된 값에 필요한 사항을 수행하십시오.

예 :

public class MainActivity extends Activity { 
    private int state = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (state == 0) { 
        // State 1 
       } 
       else if (state == 1) { 
        // State 2 
       } 
       else { 
        // Default state 
       } 
      } 
     }); 

     // Rest of your code including state changing part 
    } 
} 
1
  • 당신은 버튼의 텍스트를 변경하여 그것을 할 수 있습니다.

누군가가 텍스트 변경 사항을보고 싶지 않다면. 테스트 (예를 들어 (1 끝에 빈) 또는 다른 솔루션을 "클릭"다른 상태 "를 클릭하십시오."

.... 

Button bt = (Button) findViewById(R.id.button); 
bt.setOnClickListener(new View.OnClickListener() { 

public void onClick(View v) { 
// todo: check for expected instance (Button) 
Button btc = (Button)v; 
String bText = btc.getText().toString(); 

if (bText == "open") { 
    btc.setText("close"); 
    } 
    else if (bText == "close") { 
    btc.setText("open"); 
    } 
} 

[...] 
0

당신은 토글 버튼을 사용하여 수행 할 수 있습니다.

를 XML 파일 추가 기능에서 토글 버튼을

<ToggleButton 
    android:id="@+id/tbtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:textOff="Reset" 
    android:textOn="Calculation" 
    android:background="@drawable/icon"/> 

자바 파일

public class Reviews extends Activity implements OnClickListener { 

private ToggleButton tbtn; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    tbtn = (ToggleButton) findViewById(R.id.tbtn); 
    tbtn.setOnClickListener(this); 

    public void onClick(View view) { 

     if (tbtn.isChecked()) { 

      //calculate the result 
     } 
     else { 

      //Reset your global calculation variable; 
     } 

     } 
    } 
} 
관련 문제