静态上下文中的Android-toString方法

静态上下文中的Android-toString方法,android,tostring,Android,Tostring,到目前为止,我一直在编写我的Android应用程序,只是在方法中键入名称。现在,我将对其进行分类,将其转换为string.xml,并使用以下方法引用字符串: txt.setText(this.getString(R.string.string_name)); 但是,当尝试在静态上下文中(在publicstaticvoid中)使用此选项时,它将不起作用,并给出一个错误 有没有人对如何克服这一点有什么建议?我对Java/Android编程相当陌生,这是我第一次遇到这个问题。非常感谢您的帮助 额外代

到目前为止,我一直在编写我的Android应用程序,只是在方法中键入名称。现在,我将对其进行分类,将其转换为string.xml,并使用以下方法引用字符串:

txt.setText(this.getString(R.string.string_name));
但是,当尝试在静态上下文中(在publicstaticvoid中)使用此选项时,它将不起作用,并给出一个错误

有没有人对如何克服这一点有什么建议?我对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();

}

假设
txt
TextView
,那么您只需执行
txt.setText(R.string.string\u name)
。您通常可以通过字符串的资源id来引用它,而不是显式地获取它。更多信息

假设
txt
TextView
,那么您只需执行
txt.setText(R.string.string\u name)
。您通常可以通过字符串的资源id来引用它,而不是显式地获取它。更多信息

字符串资源和所有资源一样,都是从上下文实例(通常是活动实例或应用程序实例)中从应用程序解析的。在静态上下文中,除非将实例传递给静态方法,否则没有任何实例

无论如何,您需要在非静态上下文中执行某些操作。要么保留Resources对象的副本并将其传递给静态方法,要么传递能够解析资源的上下文实例,要么在调用静态方法之前的某个时刻设置静态资源对象


也就是说,您可能需要重新考虑是否绝对需要这些方法是静态的。

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

无论如何,您需要在非静态上下文中执行某些操作。要么保留Resources对象的副本并将其传递给静态方法,要么传递能够解析资源的上下文实例,要么在调用静态方法之前的某个时刻设置静态资源对象


也就是说,您可能需要重新考虑是否绝对需要这些方法是静态的。

请显示完整的代码。+1显示更多的代码。在当前行中,不能调用
getString()
或引用
TextView
,这可能是静态上下文中的实例变量。我们需要更多的上下文来帮助解决真正的问题。很抱歉,现在添加了所有内容-这是在我的Toasts类中。请显示完整的代码。+1显示更多的代码。在当前行中,不能调用
getString()
或引用
TextView
,这可能是静态上下文中的实例变量。我们需要更多的上下文来帮助解决真正的问题。很抱歉,现在添加了所有内容-这在我的Toasts类中。如果您无法直接使用id,请尝试以下操作:
myString=con.getString(R.string.string\u name)
如果您无法直接使用id,请尝试以下操作:
myString=con.getString(R.string.string\u name)