Java 重新加载区域设置时出现NullPointerException

Java 重新加载区域设置时出现NullPointerException,java,android,api,date,listadapter,Java,Android,Api,Date,Listadapter,我正在创建一个应用程序,有几个语言选项(英语、葡萄牙语等)。因此,每当我选择一种语言时,它都会创建一个新的区域设置并重新加载活动。当我打开应用程序并在几秒钟后选择一种语言时,它通常会崩溃;然而,当我等待一分钟左右时,它通常不会崩溃 @SuppressLint("SimpleDateFormat") @Override public View getView(int position, View convertView, ViewGroup parent) {

我正在创建一个应用程序,有几个语言选项(英语、葡萄牙语等)。因此,每当我选择一种语言时,它都会创建一个新的区域设置并重新加载活动。当我打开应用程序并在几秒钟后选择一种语言时,它通常会崩溃;然而,当我等待一分钟左右时,它通常不会崩溃

    @SuppressLint("SimpleDateFormat")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //make sure we have a view to work with (may have been given null)

        if(convertView == null)
        {
            convertView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
        }

        if(fetchDone == true)
        {
            translinkBC = (TextView)convertView.findViewById(R.id.second);
            translinkBC.setText("TransLink BC");

            TIME = (TextView)convertView.findViewById(R.id.first);

            DateFormat formatter;
              Date date = null;
              Date now = new Date();
              formatter = new SimpleDateFormat("EEE MMM dd hh:mm:ss ZZZZZ yyyy");
              try {
                  Log.d("dadadadadadteetete", date + "");
                date = formatter.parse(tweets.get(position).getTimeStamp());
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
              long diff = now.getTime() - date.getTime();
              long diffSeconds = diff / 1000;       
              long diffMinutes = diff / (60*1000);  
              long diffHours = diff / (60*60*1000);  

              if(diffHours <1)
              {
                  if(diffMinutes > 1)
                  {
                      TIME.setText(String.valueOf(diffMinutes) + "min");
                  }
                  else
                  {
                      TIME.setText(String.valueOf(diffSeconds) + "sec");
                  }

              }
              else
              {
                    TIME.setText(String.valueOf(diffHours) + "h");
              }


        }

        TwitterDisplay twitter = myTwitter.get(position);

        ImageView image = (ImageView)convertView.findViewById(R.id.twitter_image);
        image.setImageResource(twitter.getImage());

        TextView text = (TextView)convertView.findViewById(R.id.tweetText);
        text.setText(twitter.getTwitter_Info());

        return convertView;
    }

}
不确定这是否有帮助,但这里有一个改变语言的小例子

 case R.id.portuguese:

            lang = "pt";
            locale = new Locale(lang);
            config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                    getBaseContext().getResources().getDisplayMetrics());
            finish();
            startActivity(getIntent());
            break;
我的日志(无法添加照片,因此我键入了它)

 case R.id.portuguese:

            lang = "pt";
            locale = new Locale(lang);
            config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config,
                    getBaseContext().getResources().getDisplayMetrics());
            finish();
            startActivity(getIntent());
            break;
FATAl EXCEPTION:main
Process: com.example.speedyskytrain, PID 8350
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1009)
at java.text.DateFormat.parse(DateFormat.java:553)
at com.example.speedyskytrian.MainactivityMylistAdapter.getView(MainActivity.java:235)
at android.widget.AbsListView.obtainView(AbsListView.java:2255)
at android.widget.ListView.measureHeightOfChildren(Listview.java:1263)