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

时间:2016-01-14 10:32:49

标签: java android button case void

我正在进行A Level计算,我正在尝试为我的Comp 4项目制作应用程序。我用按钮完成的所有其他类似乎工作正常,但主菜单上的按钮不起作用。

public class MainActivity extends AppCompatActivity {

Button bLogin;
Button bProducts;
EditText etName, etAge, etUsername;

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

@Override
protected void onStart() {
    super.onStart();
}

@Override
public boolean onCreateOptionsMenu (Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id= item.getItemId();
    switch (id) {
    case R.id.bLogin:
        break;
    case R.id.bProducts:
        break;
    }
    return super.onOptionsItemSelected(item);
}

public void ProductsOnClick(View b) {
    startActivity(new Intent(".Products"));
    switch (b.getId()) {
    case R.id.bProducts:
    }
}

public void LoginOnClick(View a) {
    startActivity(new Intent(".Login"));
    switch (a.getId()){
    case R.id.bLogin:
    }
}

}

Activity会运行但选项菜单上的按钮不起作用。

我正在使用Android Studio对此进行编程。

2 个答案:

答案 0 :(得分:5)

因为选择菜单项时无需执行任何操作,所以请更改代码:

 @Override
    public boolean onOptionsItemSelected(MenuItem item){
         int id= item.getItemId();
         switch (id) {
             case R.id.bLogin:
               startActivity(new Intent(".Login"));
             break;

             case R.id.bProducts:
               startActivity(new Intent(".Products"));
             break;
         }
         return super.onOptionsItemSelected(item);
}

PS:

确保您使用的是正确的Intent构造函数,因为Intent(String)需要操作作为参数而不是活动名称或其他内容。

答案 1 :(得分:0)

您可以改用OnClickListener。将其放入onCreate

bProducts.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(".Products"));
    }
});

bLogin.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(".Login"));
    }
});