我如何在开关盒中添加项目标题

How can i add an item title in a switch case

我正在为 onOptionsItemSelected 做一个转换案例,我想为这个项目分配一个标题值,但它不起作用。

问题出现在案例R.id.numTaula,当我使用menu.Android时说:

Qualifier must be an expresion.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // toggle nav drawer on selecting action bar app icon/title

    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }

    // Handle action bar actions click
    switch (item.getItemId()) {
        case R.id.action_settings:
            return true;

        case R.id.carrito:
            carrito c = new carrito();
            FragmentManager fm = getFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            ft.replace(R.id.frame_container, c);
            ft.commit();
            return true;

        case R.id.alerta:
            AlertDialog.Builder cambrer = new AlertDialog.Builder(this);

            cambrer.setTitle("Demanar cambrer");
            cambrer.setMessage("Està seguir que desitja l'atenció del cambrer?");


            cambrer.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    alertaCambrer = true;
                }
            });

            cambrer.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    alertaCambrer = false;
                }
            });

            cambrer.show();
            break;

        case R.id.numTaula:

            AlertDialog.Builder AlertTaula = new AlertDialog.Builder(this);

            AlertTaula.setTitle("Numero de taula");
            AlertTaula.setMessage("Introdueix el numero de taula");

            // Set an EditText view to get user input
            final EditText input = new EditText(this);
            input.setInputType(InputType.TYPE_CLASS_NUMBER);
            input.setRawInputType(Configuration.KEYBOARD_12KEY);
            AlertTaula.setView(input);

            AlertTaula.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    numTaula = input.getText().toString();
                    menu.findItem(R.id.numTaula).setTitle(numTaula);

                }

            });


            AlertTaula.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    // Canceled.
                }
            });


            AlertTaula.show();
            break;
        default:
            return super.onOptionsItemSelected(item);
    }return super.onOptionsItemSelected(item);
}

行中:

numTaula = input.getText().toString();

你到底在哪里定义什么是 numTaule?是字符串吗?

这可能是问题所在:

你有图书馆项目吗?如果是这样,请不要对资源 ID 使用开关,它们不再是常量。

编辑:

好的,我误解了你的问题,所以这是因为某些类型问题。

但首先要这样尝试:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setRawInputType(Configuration.KEYBOARD_12KEY);
AlertTaula.setView(input);

AlertTaula.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        public EditText input;

        // init method to set init values
        public DialogInterface.OnClickListener init(EditText input) {
            this.input = input;
            return this;
        }

        public void onClick(DialogInterface dialog, int whichButton) {
             menu.findItem(R.id.numTaula).setTitle(input.getText().toString());
        }

}.init(input));

您的接口实现不需要最后的东西。

那么numTaula到底是什么?好像是个数?类型真的是 String 吗? Post代码。