1

いくつかの文字列 (strings.xml から取得) を .xml に挿入する必要があるクラスがありStringBufferます。それはActivityに渡されます。問題は、 getString() メソッドを使用する必要があることですが、クラスであるため使用できません。私に何ができる?

次のようなアクティビティのコンテキストを渡そうとしました:

MainActivity aq = new MainActivity();
Context ctx = aq.getApplicationContext();

this.primo= this.primo.append(ctx.getString(R.string.A)+ "\n");

しかし、文字列が印刷されるときにアプリがクラッシュします。そして、この例外を作ります:

11-07 16:50:56.750: E/AndroidRuntime(11871): FATAL EXCEPTION: main
11-07 16:50:56.750: E/AndroidRuntime(11871): java.lang.NullPointerException
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at com.example.test.Mainclass.<init>(Mainclass.java:130)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at com.example.test.MainActivity.calcolatore(MainActivity.java:534)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at com.example.test.MainActivity$18.onClick(MainActivity.java:500)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.view.View.performClick(View.java:2485)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.view.View$PerformClick.run(View.java:9080)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.os.Handler.handleCallback(Handler.java:587)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.os.Looper.loop(Looper.java:130)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at android.app.ActivityThread.main(ActivityThread.java:3687)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at java.lang.reflect.Method.invokeNative(Native Method)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at java.lang.reflect.Method.invoke(Method.java:507)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
11-07 16:50:56.750: E/AndroidRuntime(11871):    at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

3

Java クラスに以下をインポートします

import android.content.res.Resources;

そして、このメソッドを使用して文字列を取得します:

Resources.getSystem().getString(R.string.stringname);
于 2013-11-07T16:16:14.287 に答える