2016-06-27 12 views
0

私は、国コードと電話番号を保持するコンテナとしてTextInputLayoutを使用しています。このコンテナのカスタムスタイルがあります。TextInputLayout setErrorのNullPointerException

<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/signin_inputlayout_mobile" 
     style="@style/UserAuthField"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <Spinner 
       android:layout_width="0dp" 
       android:layout_weight="22" 
       android:layout_height="wrap_content" 
       style="@style/region_spinner" 
       android:id="@+id/spinner" 
       android:prompt="@string/Auth_DialCode"> 
      </Spinner> 

      <EditText 
       android:layout_width="0dp" 
       android:layout_weight="78" 
       style="@style/UserAuthField" 
       android:inputType="number" 
       android:id="@+id/usr_mobile_uname_login" 
       android:hint="@string/Auth_Phone"/> 

     </LinearLayout></android.support.design.widget.TextInputLayout> 

次のスタイルです:

<style name="UserAuthField"> 
    <item name="android:background">@drawable/etborder</item> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:textColor">#333333</item> 
    <item name="android:textColorHint">#757575</item> 
    <item name="android:paddingBottom">4dp</item> 
    <item name="android:paddingTop">8dp</item> 
</style> 

ここ層-リストです:

:私はこれにSETERRORしようとすると

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:bottom="1dp" android:left="-3dp" android:right="-3dp" android:top="-3dp"> 
    <shape android:shape="rectangle"> 
     <stroke android:width="1dp" android:color="#00FFFFFF"/> 
    </shape> 
</item> 
</layer-list> 

、私は次のエラーを取得します

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setBackgroundTintList(android.content.res.ColorStateList)' on a null object reference 

FYI、同じ戦略のワークdは早いですが、この例では何かが欠落しているようです。なぜ分かりませんか?私がやった

答えて

0

大きな間違いは、レイアウトのルート要素の定義にあった:私はスタイルが動作するために、彼らは地元のコンテキストではなく定義する必要があり、this answerから理解したよう

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ripple="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
**tools:context="com.viven.android.kahaniya.ActivitySetup"** 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

アプリケーションレベルのコンテキスト

今、私はまだその意味が完全に理解できていません。私はもう少し詳しく読んでいきますが、追加情報があれば、plsは共有します。

関連する問題