一个按钮用于两个动作

时间:2012-07-28 17:10:27

标签: android

任何人都可以告诉我吗?我如何使用相同的按钮进行两个动作? 就像我在我的活动中使用一个按钮来计算一些值,并在计算出时再次按下相同的按钮然后重置所有字段。喜欢这个应用程序 http://www.craziness.com/games/play-love-tester/当我按下按钮测试爱情时 然后我再次按下相同的按钮,然后重置所有字段。 我应该在我的活动中使用什么来解决上述问题?

3 个答案:

答案 0 :(得分:3)

您可以创建一个全局变量来指示程序的状态,然后在需要时更改此值。在OnClickListener的{​​{1}}中,您创建了一个Button语句,用于检查此变量并为相关值执行所需的操作。

示例:

if

答案 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"); 
     }
}

[...]

答案 2 :(得分: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"/>   

Java文件

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;
        }

        }
    }
}