Java 我不允许在switch case[Android]中从资源文件传递字符串

Java 我不允许在switch case[Android]中从资源文件传递字符串,java,android,Java,Android,我有几个按钮,我有以下相同的click listener: private View.OnClickListener onclick = new View.OnClickListener() { @Override public void onClick(View v) { switch(v.getId()){ case R.id.home: break;

我有几个按钮,我有以下相同的click listener:

 private View.OnClickListener onclick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch(v.getId()){
                case R.id.home:
                    break;
                case R.id.contact:
                    break;
                case R.id.terms:
                    break;
                case R.id.touch:
                    show(R.string.about_us); //Error here
                    break;


            }
        }
    };
在每次点击按钮时,我都会显示相同的弹出窗口,只是文本不同。我在
strings.xml
文件中有文本

下面是我的对话框功能:

 public void show(String message){
        final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.terms);

        //dialog.setTitle("Terms & Conditions");
        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText(message);
        text.setTypeface(helv_light);
        ImageButton dialogButton = (ImageButton) dialog.findViewById(R.id.button1);
        // dialogButton.setTypeface(helv_light);
        dialogButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });

        dialog.show();
    }
如果
R.id.touch:
My IDE出现以下消息:

show(java.lang.string)不能应用于(int)


如果我替换
show(R.string.about_us)
显示(“+R.string.about_-us”)错误消失了,我错过了什么

R.string.
值是
int
s。您需要使用
getResources().getString(R.string.str\u id)
来获取实际的字符串值

使用
getResources().getString
strings.xml
获取字符串:

show(v.getContext().getResources().getString(R.string.about_us));

R.string.about_us
是一个int值,不是字符串。要保留这两个参数,可以重载
show
,提供整数参数,然后调用

 public void show(final int messageId) {
    sendMessage(getResources().getString(messageId));
 }

我正在使用
R.string
如果您替换
show(R.string.about\u us)
显示(“+R.string.about_-us”),您将获得字符串ID(类似于0x7000123-转换为字符串)。