静态上下文中的Android toString方法

时间:2011-02-24 00:13:57

标签: android tostring

到目前为止,我只是通过在方法中键入名称来编写我的Android应用程序。我现在正在对此进行排序,然后将这些文件放入string.xml中,并使用:

引用该字符串
txt.setText(this.getString(R.string.string_name));

但是,当尝试在静态上下文中使用它时(在public static void中),它不起作用并产生错误。

有没有人有任何关于如何克服这一点的指示?我是Java / Android编程的新手,这是我第一次遇到这个问题。非常感谢任何帮助。

额外代码:

public static void ShowCatAddedAlert(Context con)
{
AlertDialog.Builder builder=new AlertDialog.Builder(con);
builder.setTitle("Add new Category");
builder.setIcon(android.R.drawable.ic_dialog_info);
DialogListner listner=new DialogListner();
builder.setMessage("Category Added successfully");
builder.setPositiveButton("ok", listner);

AlertDialog diag=builder.create();
diag.show();

}

2 个答案:

答案 0 :(得分:4)

假设txtTextView,那么您可以txt.setText(R.string.string_name)。您通常可以通过它的资源ID引用字符串,而不是明确地获取它。有关http://developer.android.com/guide/topics/resources/string-resource.html

的更多信息

答案 1 :(得分:1)

作为所有资源的字符串资源是从Context实例(通常是Activity实例或Application实例)中从应用程序解析的。在静态上下文中,除非将它们传递给静态方法,否则没有任何实例。

无论如何,您需要在非静态环境中执行某些操作。要么保留一个Resources对象的副本并将其传递给静态方法,要么传递一个能够解析资源的Context实例,或者在静态方法之前的某个时刻有一个静态的Resources对象。被叫。

话虽这么说,你可能想重新审视一下你是否绝对需要这些方法是静态的。