使用字符串for to Toast onItemClickListener?

时间:2014-04-01 12:42:32

标签: android string toast

如何为使用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)

5 个答案:

答案 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

中设置默认值