按钮OnClickListener只能运行一次android

时间:2016-08-01 06:09:18

标签: android listener

我在下面有活动。当我运行应用程序时,它只能运行一次,当我第一次按storeBTNretrieveBTN后,我看到Textview没有变化,也没有关于运行store()和{的日志{1}}函数。

retrieve()

2 个答案:

答案 0 :(得分:3)

删除

setContentView(R.layout.activity_main);
来自store()方法的

答案 1 :(得分:2)

从我的观点来看问题是你在onCreate()方法中添加了click listner,我建议使用点击监听器,如下面的代码,

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

/**
 * Created by Kintan Patel on 01-Aug-16.
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button storeBTN = (Button) findViewById(R.id.button1);
        storeBTN.setOnClickListener(this);

        Button retrieveBTN = (Button) findViewById(R.id.button2);
        storeBTN.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.R.id.button1:
            // storeBTN button click
            break;
            case R.id.R.id.button2:
            //retrieveBTN click
            break;

        }
    }
}

在这段代码中,我只添加了两行,一个实现了一个方法,

  implements View.OnClickListener
  storeBTN.setOnClickListener(this);
  storeBTN.setOnClickListener(this);

实现方法android studio给出覆盖方法错误,所以简单覆盖click方法,

@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.R.id.button1:
            // storeBTN button click
            break;
            case R.id.R.id.button2:
            //retrieveBTN click
            break;

        }
    }

因此,在功能上,您在单个页面中有更多按钮,您的代码干净且易于理解。

如果您有任何疑问,请随时提出。