【问题标题】:Function to Return a Buttons OnClick Listener Value返回按钮 OnClick 侦听器值的函数
【发布时间】:2015-06-20 16:21:20
【问题描述】:

我想知道是否有人知道将按钮设置为 On Click Listener 的方法。有点像……

btn1.getOnClickListner

我想做一个这样的 IF 语句...

if (button.Onclick == onClick1) {
 do this...
} else {
 do this...
}

任何帮助将不胜感激

【问题讨论】:

  • 为什么不只有一个OnClickListener,并根据某种状态(例如boolean)让它在onClick() 内部分支?
  • 因为按钮的 onClick 时间不同。它在两个 onClick 之间交替。我正在尝试在 saveInstanceState 中保存按钮设置为 OnClick 的内容,以便在应用程序更改为横向模式时将其恢复。这也将是一大堆工作,因为有 7 个按钮和 14 个 OnClicks
  • “因为按钮的 onClick 并非始终相同”——这就是我建议您更改的内容。始终拥有相同的OnClickListener。让OnClickListener 知道如何使用适当的状态信息来做任何需要的事情。 “此外,这将是一座工作山,因为有 7 个按钮和 14 次点击”——如果您认为这是一座“工作山”,那么随着时间的推移,您可能会遇到许多更大的山。
  • 那里是真的..我会试一试。感谢您的帮助好友

标签: android onclick return return-value onclicklistener


【解决方案1】:

我发现最简单的方法是接受 CommonsWares 的建议并创建一个 onClick,使用布尔值为其提供单独的执行方法。下面是一个示例,以防其他人在尝试完成此任务时遇到困难。感谢所有帮助并分享他们想法的人。

public class MainActivity extends Activity implements View.OnClickListener {

    boolean separateOnClickActive;
    Button btn1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn1 = (Button) findViewById(R.id.button);
        btn1.setOnClickListener(this);

        separateOnClickActive = false;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                if (!separateOnClickActive) {
                    // Do Something Here
                    separateOnClickActive = true;
                } else {
                    //Do Something Here
                }
                break;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多