java - 如何在 Android 应用程序的事件监听器回调中使用标志

标签 java android callback

预期结果

按钮可以像切换开关一样起作用,这样, (1)第一次点击按钮向右移动 (2)第二次点击按钮向左移动 (3)第三次点击按钮向右移动 等等......

问题

标志变量flagToggleButton不能在按钮的OnClickListener事件监听器回调函数中使用。

Main.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final Button b = (Button) findViewById(R.id.button1);
        boolean flagToggleButton = false;
        b.setOnClickListener(new OnClickListener () {
            @Override
            public void onClick(View arg0) {
                if (flagToggleButton == false) {
                    Animation anim = AnimationUtils.loadAnimation(Main.this, 
                                       R.anim.animation_move_right);
                    b.startAnimation(anim);
                    flagToggleButton = true;
                }
                else {
                    Animation anim = AnimationUtils.loadAnimation(Main.this, 
                                       R.anim.animation_move_left);
                    b.startAnimation(anim);
                    flagToggleButton = false;
                }
            }
        });
    }
}

最佳答案

使其成为类的成员变量。换句话说,在 onCreate()

之外定义它
public class Main extends Activity {

    boolean flagToggleButton = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    // rest of your code

关于java - 如何在 Android 应用程序的事件监听器回调中使用标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17419209/

相关文章:

java - 如何更改 Nimbus 中单个 JProgressBar 的颜色?

javascript - 如何在回调中访问正确的“this”?

Javascript - 回调函数

java - play框架2.1.3扩展play.api.templates.Html

java - 与使用 DOM 解析器手动解析 XML 文件相比,使用 XSLT 样式表有什么优势吗?

android - actionbarsherlock 使用 tabnavigation 棕褐色导航

android - 当我们使用网络浏览器搜索应用程序时,我们可以更改显示在 URL 框中的 Android 应用程序的网址吗

android - 在 Android 中创建具有自定义样式的 TimePickerDialog

c - Swift 中的任意 C 回调包装器

java - Spring Json 响应中的时区问题