簡體   English   中英

Android 如何在課堂上訪問資源?

[英]Android how can I access resources in class?

我正在嘗試從資源中獲取 String app_name ,但我一直在獲取空對象引用 我該如何解決?

package com.testandroid;

import android.app.Activity;
import android.content.Context;
import android.util.Log;
import java.util.HashMap;


public class Test extends Activity {
    public Test() {
        try {
            String hello = getString(R.string.app_name);

        } catch (Exception e) {
            Log.d("myLogs", e.getMessage());
        }
      }
}


<resources>
    <string name = "app_name">Name</string>
</resources>
string hello = getResources().getString(R.string.app_name);

永遠不要覆蓋活動的構造函數,這會導致嚴重的問題。 如果您需要在構建活動時初始化某些內容,請在 onCreate 中進行,在構造函數中資源尚未准備好使用,因此此時您無法使用它們。

public class Test extends Activity { 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout_here);
        String hello = getString(R.string.app_name);
        Log.d("Log", hello);

}

這也應該放在values文件夾中的strings.xml

<resources>
    <string name = "app_name">Name</string>
</resources>

好的,最簡單的方法是使用 Context。

public class Test extends Activity {
    public Test(Context context) {
        try {
            String hello = context.getResources().getString(R.string.app_name)

        } catch (Exception e) {
            Log.d("myLogs", e.getMessage());
        }
      }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM