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)