1

我正在關注此android developer page以創建應用程序的自定義屬性。一切都很順利,我能夠編譯並看到結果。 但是問題的部分是IDE.Android Studio正在抱怨意外的命名空間自定義。有什麼辦法可以禁用/隱藏這個錯誤信息嗎?這非常煩人。嘗試使用自定義屬性時發現標記片段的意外名稱空間前綴「自定義」

但是,即使有這個錯誤,我也能編譯和運行應用程序。

enter image description here

我跟着follwing步驟。

1)創建RES /價值/ attrs.xml文件,並添加

<?xml version="1.0" encoding="utf-8"?> <resources> 
<declare-styleable name="FragArguments"> 
    <attr name="max_allowed" format="integer"/> 
    <attr name="header" format="string"/> 
</declare-styleable> 

2)想在我mainlayout文件的片段標籤

<LinearLayout xmlns:custom="http://schemas.android.com/apk/res" 
          android:layout_width="fill_parent" 
          android:layout_height="0dip" 
          android:layout_weight="1"> 
       <fragment android:id="@+id/msg" 
          android:name="org.android.fragment.MessageFragment" 
          custom:max_allowed="85" 
          custom:header="@string/header" 
          android:layout_width="wrap_content" 
          android:layout_height="match_parent"/> 
      </LinearLayout> 

3.應用使用自定義屬性通過代碼覆蓋片段的onInflate()方法

@Override 
    public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) { 
     super.onInflate(activity, attrs, savedInstanceState); 

     TypedArray typedArray = activity.obtainStyledAttributes(attrs, R.styleable.FragArguments); 
     max_allowed = typedArray.getInt(R.styleable.FragArguments_max_allowed, -1); 
     header = typedArray.getString(R.styleable.FragArguments_header); 
     typedArray.recycle(); 
    } 

回答

5

我剛想出解決方案。

問題ID MissingPrefix告訴皮棉只掃描那些丟失了Android命名空間prefix.So我們能做到這兩個方面XML屬性: -

  1. Canissue以下命令掃描的文件在主項目目錄及其子目錄下。

棉絨--check MissingPrefix MYPROJECT

  • 在Android Studio中創建具有以下內容的lint.xml文件,並添加在應用程序的目錄。
  • <?xml version="1.0" encoding="utf-8"?> 
    <lint> 
        <issue id="MissingPrefix" severity="ignore"/> 
    </lint> 
    
    1

    感謝@Nicks答案。您還可以將以下行添加到android {}範圍內的build.gradle文件中:

    lintOptions { 
         disable 'MissingPrefix' 
        } 
    
    相關問題