如何动态地将字符串消息添加到Android屏幕

时间:2012-03-07 21:06:38

标签: android

我想在发生错误后在Android应用程序屏幕上显示错误消息。所以我在strings.xml文件中放了一个字符串,在代码中我只想告诉系统显示该代码。

但我不完全确定如何做到这一点。我有这样的东西,我写了:

TextView errorMessage = (TextView) findViewById(R.id.add_problem_validation_error);
    errorMessage.setText(R.string.add_problem_validation_error);

但它甚至没有编译,因为我不确定如何正确引用string.xml项并显示它们。

知道如何以正确的方式做到这一点吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

为什么不使用Toast?

Toast.makeText(getApplicationContext(),
           R.string.add_problem_validation_error, Toast.LENGTH_LONG).show();

或者您可以使用警告对话框..

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.add_problem_validation_error)
   .setCancelable(false)
   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            MyActivity.this.finish();
       }
   })
   .setNegativeButton("No", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
       }
   });
AlertDialog alert = builder.create();

答案 1 :(得分:1)

请尝试使用此代码:

TextView errorMessage = (TextView) findViewById(R.id.add_problem_validation_error);
errorMessage.setText(getResources().getString(R.string.add_problem_validation_error));

变量R.string.add_problem_validation_error实际上是Android操作系统用来指向资源的整数id。您需要使用resources类来获取该id的相应值。

您的TextView将需要xml文件中的id行:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/add_problem_validation_error"
    />

您的strings.xml文件需要一个带有消息的字符串行:

<string name="add_problem_validation_error">Your message here</string>