为什么我在 Android 中的按钮不起作用?

Why are my buttons in Android not working?

我创建了一个菜单 activity,其中包含 3 个按钮(主要、历史记录、注销)。
不知道为什么所有的按钮都不起作用,还有登出功能。
无论如何我不知道注销功能,它是正确的功能还是错误的功能?
我是 Android 的新手,我们将不胜感激。

这是我的代码:

public class MenuActivity extends ActionBarActivity implements View.OnClickListener {

        Button mainBtn,historyBtn,logoutBtn ;

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

            mainBtn = (Button)findViewById(R.id.button1);
            historyBtn = (Button)findViewById(R.id.button2);
            logoutBtn = (Button)findViewById(R.id.button3);

        }

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
                case R.id.button1:
                    Intent main = new Intent (this, MainActivity2.class);
                    startActivity(main);
                    break;
                case R.id.button2:
                    Intent history = new Intent(this, HistoryActivity.class);
                    startActivity(history);
                    break;
                case R.id.button3:
                    Intent logout = new Intent(this, LoginActivity.class);
                    keluar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(logout);
                    this.finish();
            }
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_menu, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }

            return super.onOptionsItemSelected(item);
        }
    }

你做到了吗?

mainBtn.setOnClickListener(this);
historyBtn.setOnClickListener(this);
logoutBtn.setOnClickListener(this);

即在代码中或在 xml 文件中为按钮注册 onClickListener。

将侦听器设置为所有按钮,例如..

 mainBtn.setOnClickListener(this);

您需要使用点击侦听器注册按钮。用以下代码替换您的代码..

public class MenuActivity extends ActionBarActivity implements View.OnClickListener {


    Button mainBtn,historyBtn,logoutBtn ;


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

        mainBtn = (Button)findViewById(R.id.button1);
        historyBtn = (Button)findViewById(R.id.button2);
        logoutBtn = (Button)findViewById(R.id.button3);
        // Register your buttons with the click listener
        mainBtn.setOnClickListener(this);
        historyBtn.setOnClickListener(this);
        logoutBtn.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            case R.id.button1:
                Intent main = new Intent (this, MainActivity2.class);
                startActivity(main);
                break;
            case R.id.button2:
                Intent history = new Intent(this, HistoryActivity.class);
                startActivity(history);
                break;
            case R.id.button3:
                Intent logout = new Intent(this, LoginActivity.class);
                keluar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(logout);
                this.finish();
        }
 }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
 }


}

您没有为您的按钮设置侦听器。

mainBtn = (Button)findViewById(R.id.button1);
historyBtn = (Button)findViewById(R.id.button2);
logoutBtn = (Button)findViewById(R.id.button3);

mainBtn.setOnClickListener(this);
historyBtn.setOnClickListener(this);
logoutBtn.setOnClickListener(this);

祝你工作顺利。 :)

mainBtn.setOnClickListener(this);
historyBtn.setOnClickListener(this);
logoutBtn.setOnClickListener(this);