当前位置: 代码迷 >> Android >> 静态引述非静态出错
  详细解决方案

静态引述非静态出错

热度:42   发布时间:2016-04-27 22:14:27.0
静态引用非静态出错
String tswj=getResources().getString(R.string.tswj);
String scdc=getResources().getString(R.string.scdc);
String shdc=getResources().getString(R.string.shdc);

public static   String[] title={tswj,scdc,shdc,cpyj,zczb,other};      将汉字放进了string.xml里, 改了之后这里括号里报错!不能让一个静态引用非静态! 
  怎么改, 求大神
------解决思路----------------------
你用String-array会更简单一些,在strings.xml文件中添加:

     <string-array name="titles">
        <item>tswj</item>
        <item>scdc</item>
        <item>shdc</item>
    </string-array>

使用的时候
先定义static String[] title;
在onCreate中初始化title = getResources().getStringArray(R.array.titles);
这样就更简单一些。
------解决思路----------------------
引用:
你好,可是这样还是会报错,我的是onCreateView , 直接写成这样
public  static final String[] title= getResources().getStringArray(R.array.titles);
在onCreateView 中初始化,也还是会崩掉! 


直接用static去抓非static變數當然崩了
要間接賦予static變數值
你就差一步了
想在哪邊賦值都可, 只要別直接賦值



public static String[] title;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        title = getResources().getStringArray(R.array.titles);

    }
  相关解决方案