2014-11-16 39 views
0

我在我的項目的res/layout文件夾名爲player_small.xml這個XML文件:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/player_small" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:rowCount="3" 
     android:columnCount="4"> 

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/player_small_play" 
     android:layout_gravity="center" 
     android:layout_row="0" 
     android:layout_rowSpan="2" 
     android:layout_column="0" 
     android:src="@drawable/play"/> 

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/next" 
     android:id="@+id/player_small_next" 
     android:layout_gravity="center" 
     android:layout_row="0" 
     android:layout_rowSpan="2" 
     android:layout_column="1"/> 

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Title" 
     android:textStyle="bold" 
     android:textSize="@dimen/defaultFontSize" 
     android:id="@+id/player_small_title" 
     android:layout_gravity="center_vertical|left|right" 
     android:layout_row="0" 
     android:layout_column="3"/> 

<Space 
     android:layout_width="30px" 
     android:layout_height="10px" 
     android:layout_row="2" 
     android:layout_column="2"/> 

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Artist" 
     android:textSize="@dimen/defaultFontSize" 
     android:id="@+id/player_small_artist" 
     android:layout_gravity="center_vertical|left|right" 
     android:layout_row="1" 
     android:layout_column="3"/> 
</GridLayout> 

然後,我有定義了稱爲SmallPlayerView自定義視圖包含所有3個構造從超FrameLayout所有調用此方法:

protected void initSmallPlayerView() 
{ 
    View view = inflate(getContext(), R.id.player_small, null); 
    addView(view); 
} 

InteliJ IDEA從另一XML的佈局文件使用時可以顯示類是正確的,但WH恩我啓動它自己的手機或模擬器上的崩潰與此異常:

Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f060007 type #0x12 is not valid 
     at android.content.res.Resources.loadXmlResourceParser(Resources.java:2103) 
     at android.content.res.Resources.getLayout(Resources.java:852) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:394) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
     at android.view.View.inflate(View.java:16119) 
     at myapp.music.organizer.SmallPlayerView.initSmallPlayerView(SmallPlayerView.java:51) 
     at myapp.music.organizer.SmallPlayerView.<init>(SmallPlayerView.java:46) 
     at java.lang.reflect.Constructor.constructNative(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256) 
     at android.app.Activity.setContentView(Activity.java:1867) 
     at myapp.music.organizer.MainActivity.onCreate(MainActivity.java:23) 
     at android.app.Activity.performCreate(Activity.java:5008) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
     at android.app.ActivityThread.access$600(ActivityThread.java:130) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4745) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
     at dalvik.system.NativeStart.main(Native Method) 

我已經打開了R.class文件,並看着它,所有的資源都存在。我怎樣才能解決這個例外?

回答

8

你有你的代碼改成這樣:

{ 
    View view = inflate(getContext(), R.layout.player_small, null); 
    addView(view); 
} 

您可以用充氣佈局視圖屬性沒有ID

相關問題