我正在創建一個應用程序,可以使用日語語言環境當我用英語運行應用程序即默認語言環境它工作正常,沒有任何異議,但是當我改變語言環境並運行相同在getSupportActionBar()點的應用程序崩潰ActionBarSherlock給予空指針異常getSupportActionBar()在國際化
我沒有使用任何的主題和默認的主題是如下
<style name="AppBaseTheme" parent="android:Theme.Light">
我的代碼如下:MainActivity.java
public class MainActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionbar = getSupportActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.setTitle("PROFILE");
Tab frag1tab = actionbar.newTab().setText("LOGIN");
Tab frag2tab = actionbar.newTab().setText("REGISTER");
Fragment fragment1 = new LoginFragment();
Fragment fragment2 = new RegistrationFragment();
frag1tab.setTabListener(new MyTabListener(fragment1));
frag2tab.setTabListener(new MyTabListener(fragment2));
actionbar.addTab(frag1tab);
actionbar.addTab(frag2tab);
}
class MyTabListener implements TabListener {
public Fragment fragment;
public MyTabListener(Fragment fragment) {
this.fragment = fragment;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction ft) {
// TODO Auto-generated method stub
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
}
LoginFragment代碼
public class LoginFragment extends SherlockFragment implements OnClickListener{
URLConnection url;
JSONObject j1;
View v;
EditText UserName;
EditText Password;
int result;
Button btn1;
StringBuffer br;
Handler h;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v=inflater.inflate(R.layout.login_fragment, container,false);
Log.d("Fragment_1", "MIKEL - onCreateView");
h=new Handler();
UserName=(EditText) v.findViewById(R.id.username);
Password=(EditText) v.findViewById(R.id.password);
btn1=(Button) v.findViewById(R.id.loginButton);
btn1.setOnClickListener(this);
// currentContext.startActivity(activityChangeIntent);
return v;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
與同類其他片段代碼
我的strings.xml價值觀文件夾如下。
<resources>
<string name="app_name">Internationalization and Localization</string>
<string name="hello">Hello World.</string>
<string name="byebye">Bye bye World</string>
<string name="button">Change Text</string>
</resources>
values-ja文件夾中的My Strings.xml如下。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">國際化と現地化</string>
<string name="hello">こんにちは、みなさん </string>
<string name="byebye">さようなら、みなさん</string>
<string name="button">テキストを変える</string>
</resources>
更改主題後,代碼運行正常。謝謝。 – Chaitanya
沒有改變主題如何解決NPE任何想法。? –