Java 我不允许在switch case[Android]中从资源文件传递字符串
我有几个按钮,我有以下相同的click listener: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;
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-转换为字符串)。