次のコードを見てください
import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.TextView;
public class Home extends Activity {
private TextView textView23;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Removing the title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_home);
//Setting up the Action Bar
ActionBar actionBar = getActionBar(); //to support lower version too
actionBar.setDisplayShowCustomEnabled(true);
View customView=getLayoutInflater().inflate(R.layout.window_title, null);
actionBar.setCustomView(customView);
actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
textView23 = (TextView)findViewById(R.id.textView23);
textView23.setSelected(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
}
ここでは、アプリのタイトル バーを削除しています。しかし、このコードが実行されるとすぐに、次のエラーが発生します。
10-30 08:09:58.480: E/AndroidRuntime(2747): FATAL EXCEPTION: main
10-30 08:09:58.480: E/AndroidRuntime(2747): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xx.xx/com.xx.xx.Home}: java.lang.NullPointerException
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.os.Handler.dispatchMessage(Handler.java:99)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.os.Looper.loop(Looper.java:137)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread.main(ActivityThread.java:5041)
10-30 08:09:58.480: E/AndroidRuntime(2747): at java.lang.reflect.Method.invokeNative(Native Method)
10-30 08:09:58.480: E/AndroidRuntime(2747): at java.lang.reflect.Method.invoke(Method.java:511)
10-30 08:09:58.480: E/AndroidRuntime(2747): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-30 08:09:58.480: E/AndroidRuntime(2747): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-30 08:09:58.480: E/AndroidRuntime(2747): at dalvik.system.NativeStart.main(Native Method)
10-30 08:09:58.480: E/AndroidRuntime(2747): Caused by: java.lang.NullPointerException
10-30 08:09:58.480: E/AndroidRuntime(2747): at com.xx.xx.Home.onCreate(Home.java:29)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.Activity.performCreate(Activity.java:5104)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-30 08:09:58.480: E/AndroidRuntime(2747): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
10-30 08:09:58.480: E/AndroidRuntime(2747): ... 11 more
次の出力のため、これを実行しようとしています
ご覧のとおり、アプリのタイトルとアクション バーの両方が表示されています。アプリのタイトルやタイトル画像は必要ありません。