Android:在Toast Alert对话框中切换大小写。

我想得到返回的字符串。这是我的代码:

public String getValue(final int x) {

    final String[] c = new String[1];


    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Title");
    builder.setItems(new CharSequence[]
                    {"1", "2", "3"},
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // The 'which' argument contains the index position
                    // of the selected item
                    switch (which) {
                        case 0:
                            Toast.makeText(context, "clicked 1", Toast.LENGTH_LONG).show();
                            c[0] = "1";
                            break;
                        case 1:
                            Toast.makeText(context, "clicked 2", Toast.LENGTH_LONG).show();
                            c[0] = "2";

                            break;
                        case 2:
                            Toast.makeText(context, "clicked 3", Toast.LENGTH_LONG).show();
                            c[0] = "3";
                            break;
                    }
                }
            });
    builder.create().show();

    return c[0];
}


但是它不返回任何东西!

有人有什么主意吗?

最佳答案

onClick具有返回拼写错误,因此您可以从那里返回一个值而不会引起编译时错误,这一点没有变化。您可以做的是创建一个处理输入的方法,然后从onClick调用它。例如。

public void myMethod(String input) {
   // do something with input
}


并称之为

public void onClick(DialogInterface dialog, int which) {
                // The 'which' argument contains the index position
                // of the selected item
                switch (which) {
                   // cases
                }
                myMethod(c[0]);
               // the other code

10-06 10:39