多个东西的一个按钮

问题描述 投票:-5回答:1

我只想实现一个按钮来执行多个操作,例如第一次单击使Textview1可见,第二次单击使Textview2可见,依此类推。

这是我的代码它的工作,但只有2个动作我想在一个按钮设置更多的可见组件我希望它清楚,谢谢你的帮助

    final TextView textView_r4 = findViewById(R.id.tv_r4);
    final EditText editText_r4 = findViewById(R.id.input_R4);
    final TextView textView_r5 = findViewById(R.id.tv_r5);
    final EditText editText_r5 = findViewById(R.id.input_R5);

    findViewById(R.id.Addbtn).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView_r4.setVisibility(View.VISIBLE);
            editText_r4.setVisibility(View.VISIBLE);
        }
    });

    findViewById(R.id.Addbtn).setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            textView_r5.setVisibility(View.VISIBLE);
            editText_r5.setVisibility(View.VISIBLE);
            return true;
       }
    });
android android-button
1个回答
2
投票

您可以添加enum状态以跟踪按钮所处的状态。在这些方法所在的同一类(活动)中创建一个类字段,并在每次单击时更改状态。然后在.setOnClickListener方法中,您可以检查按钮所处的状态,并根据具体情况执行不同的操作。

private State state = INITIAL;

findViewById(R.id.Addbtn).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        switch (state) {
            case INITIAL:
                // do first action
                state = State.CLICKED_ONCE;
                break;
            case CLICKED_ONCE:
                // do second action
                state = State.CLICKED_TWICE;
                break;
            default:
                // clicked too many times, no action taken
                break;
        }
    }
});

private enum State { INITIAL, CLICKED_ONCE, CLICKED_TWICE }
© www.soinside.com 2019 - 2024. All rights reserved.