如何为使用String的消息制作onItemClickListener toast? 我正在制作支持多种语言的应用程序,我想在不同的语言上显示吐司。为此,我需要使用字符串。那么我怎样才能获得吐司的字符串并显示它呢?
list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
switch (position) {
case 0:
showtost();
break;
}
return true;
我尝试了一些方法,但它没有用。
private void showtost() {
// TODO Auto-generated method stub
Toast.makeText(this,
.getResources().getString(R.string.alarm),
Toast.LENGTH_SHORT).show();
return;
}
The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new AdapterView.OnItemLongClickListener(){},
String,int)
答案 0 :(得分:3)
您需要将this
更改为对上下文的引用,例如如果在活动中使用:
MyActivity.this
或在片段内使用:
getActivity()
然后您发布的示例将起作用。
答案 1 :(得分:1)
是的,你可以这样做:
Toast.makeText(context, R.string.hello_world, Toast.LENGTH_LONG).show();
此处hello_world
可以替换为 strings.xml 中的字符串ID。
答案 2 :(得分:1)
你必须在那里提到getActivity()。
private void showtost() {
// TODO Auto-generated method stub
Toast.makeText(getActivity(),
.getResources().getString(R.string.alarm),
Toast.LENGTH_SHORT).show();
return;
}
答案 3 :(得分:1)
用于多语言支持;
您可以在values文件夹中定义strings.xml
,并且可以添加不同的文件夹名称values-tr
(这适用于土耳其语)。然后你可以这样设置你的字符串:
String my_toast_string=context.getString(R.string.my_string);
那么你可以这样举起你的祝酒词:
Toast.makeText(getActivity(),my_toast_string, Toast.LENGTH_SHORT).show();
答案 4 :(得分:1)
您可以使用;
获取字符串String x = getResources()。getString(R.string.language);
您可以使用语言设置在res中创建文件夹,并在其中更改字符串文件:
文件夹res / values-cn你创建一个字符串文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="language">cn</string>
</resources>
如果您创建文件夹res / values-en,则会创建一个字符串文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="language">en</string>
</resources>
现在如果你在clocklistener上设置你的Item并添加以下代码:
Toast.makeText(context, language, Toast.LENGTH_SHORT).show();
如果您的语言设备是中文,则输出为“cn”,如果是英语
,则输出为“en”我建议在文件夹res / values
中设置默认值