重新加载语言环境时出现NullPointerException

时间:2015-09-27 21:47:06

标签: java android api date listadapter

我正在创建一个应用程序,有一些语言选项(英语,葡萄牙语等)。因此,每当我选择一种语言时,它都会创建一个新的语言环境并重新加载该活动。当我打开应用程序并在几秒钟后选择一种语言时,它通常会崩溃;但是,当我等了一分钟左右时,它通常不会崩溃。

    @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;
    }

}

我认为错误来自这条线。

date = formatter.parse(tweets.get(position).getTimeStamp());

不确定它是否有帮助,但这里有一小部分改变语言的样本。

 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)

0 个答案:

没有答案