将Android语言更改为" en"收到错误" NullPointerException"

时间:2014-12-07 20:54:10

标签: java android nullpointerexception

当我启动应用程序时,我遇到错误,但是当我将默认语言更改为" fa" (波斯语)它工作正常。我认为问题在Values文件夹中。我应该把它改成Vales-en吗?字符串里面"价值"与" Value-fa"中的String相同我检查1000次。但我仍然知道我收到了NullPointerException的{​​{1}} !!! ????

NavDrawerListAdapter.getView.setText

导航抽屉适配器:

SharedPreferences language = getSharedPreferences(PRFS, 0);
String langdef = language.getString("selectlan", "en");
Locale myLocale = new Locale(langdef); 
Resources res = getResources(); 
DisplayMetrics dm = res.getDisplayMetrics(); 
Configuration conf = res.getConfiguration(); 
conf.locale = myLocale; 
res.updateConfiguration(conf, dm);

启动导航抽屉的值:

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.drawer_list_item, null);
    }

    ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
    TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
    TextView txtCount = (TextView) convertView.findViewById(R.id.counter);

    imgIcon.setImageResource(navDrawerItems.get(position).getIcon());        
    txtTitle.setText(navDrawerItems.get(position).getTitle());

    // displaying count
    // check whether it set visible or not
    if(navDrawerItems.get(position).getCounterVisibility()){
        txtCount.setText(navDrawerItems.get(position).getCount());
    }else{
        // hide the counter view
        txtCount.setVisibility(View.GONE);
    }

Logcat错误

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    mDrawerListView = (ListView) inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
    mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            selectItem(position);
        }
    });
    navMenuTitles = getResources().getStringArray(R.array.Item_arrey);
    navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
    navDrawerItems = new ArrayList<NavDrawerItem>();

    // adding nav drawer items to array

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons.getResourceId(8, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[9], navMenuIcons.getResourceId(9, -1), true, "Online"));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[10], navMenuIcons.getResourceId(10, -1), true, "100%"));

    // Recycle the typed array
    navMenuIcons.recycle();

    adapter = new NavDrawerListAdapter(getActivity().getApplicationContext(),navDrawerItems);
    mDrawerListView.setAdapter(adapter);

    return mDrawerListView;
}

0 个答案:

没有答案