2011-07-06 148 views
0

我正在创建自定义窗口标题。我用requestWindowFeature和setFeatureInt做了但没有工作。我不知道这有什么问题。我找不到错误来自哪里。自定义窗口标题

public abstract class MegaActivity extends Activity { 
    private final int layoutID; 
    public MegaActivity(final int layoutID) { 
     super(); 
     this.layoutID = layoutID; 
    } 

    @Override 
    protected void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
     setContentView(layoutID); 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title); 
    } 
} 

public class AsyncTaskTestActivity extends MegaActivity { 

    public AsyncTaskTestActivity() { 
     super(R.layout.main); 
    } 
} 

window_title.xml

<ImageView 
     android:id="@+id/header" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:src="@drawable/megadict_icon"/> 
    <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" android:text="@string/appTitle" android:textSize="16dip" android:textColor="@color/white"></TextView> 

</LinearLayout> 

错误

07-06 23:42:46.996: ERROR/AndroidRuntime(774): FATAL EXCEPTION: main 
07-06 23:42:46.996: ERROR/AndroidRuntime(774): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.asynctask/com.asynctask.AsyncTaskTestActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030002 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.os.Looper.loop(Looper.java:123) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at dalvik.system.NativeStart.main(Native Method) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030002 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.content.res.Resources.getValue(Resources.java:892) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.content.res.Resources.getLayout(Resources.java:731) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.view.LayoutInflater.inflate(LayoutInflater.java:318) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.android.internal.policy.impl.PhoneWindow.onIntChanged(PhoneWindow.java:992) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.android.internal.policy.impl.PhoneWindow.updateInt(PhoneWindow.java:2397) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.android.internal.policy.impl.PhoneWindow.setFeatureInt(PhoneWindow.java:933) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.asynctask.MegaActivity.onCreate(MegaActivity.java:20) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at com.asynctask.AsyncTaskTestActivity.onCreate(AsyncTaskTestActivity.java:26) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
07-06 23:42:46.996: ERROR/AndroidRuntime(774):  ... 11 more 
+0

也许我不明白你的意思,但你不能只使用Activity.setTitle功能? – matsjoe

+0

我想让窗口标题有一个textview和一个图标,而不是一个文本字符串,所以不能使用setTitle。 – Emerald214

回答

1

是AsyncTaskTestActivity发射活动吗?你是如何调用该活动?而且问题可能是您的布局,检查你的布局,是否包含错误?评论th e requestWindowFeature和它的相关信息暂时,如果你仍然得到错误的资源问题?你的答案我的问题可能会帮助你