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