2017-05-03 13 views
-2

私はこのチュートリアルに従って、アンドロイドでダッシュボードのレイアウトを構築しようとしています:抽象クラスのイベントハンドラを定義しますが作成されますチュートリアルこの中アンドロイドViewStub膨らませる方法がnullpointerスロー

http://www.technotalkative.com/android-dashboard-design-pattern-implementation/

をボタン:ホームとフィードバックと他の方法。各アクティビティ(メイン/ホームアクティビティを除く)には、ホームボタンとフィードバックボタンが表示されなければならないため、各アクティビティはこのスーパークラスを拡張します。

このメソッドは抽象クラスで定義されています。それは別のアクティビティがダッシュボードから開いているがあれば、すでに家の活動であるため、活動は

public void setHeader(String title, boolean btnHomeVisible, boolean btnFeedbackVisible) 
    { 
     ViewStub stub = (ViewStub) findViewById(R.id.vsHeader); 
     View inflated = stub.inflate(); 

     TextView txtTitle = (TextView) inflated.findViewById(R.id.txtHeading); 
     txtTitle.setText(title); 

     Button btnHome = (Button) inflated.findViewById(R.id.btnHome); 
     if(!btnHomeVisible) 
     btnHome.setVisibility(View.INVISIBLE); 

     Button btnFeedback = (Button) inflated.findViewById(R.id.btnFeedback); 
     if(!btnFeedbackVisible) 
     btnFeedback.setVisibility(View.INVISIBLE); 
    } 

例えば、ダッシュボードのレイアウトが示されている家の活動は、ホームボタンを表示する必要はありません。ホームボタンを次のように表示するようにします:

public class Activity_Eclair extends DashBoardActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_eclair);   

      //Passing true in order to make the home button visible 
      setHeader(getString(R.string.EclairActivityTitle), true, true); 
     } 
    } 

しかし、私は常にNullPointerExceptionが取得するための活動は開きませんし、私にはわからない理由:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.ViewStub.inflate()' on a null object reference 

問題はのsetHeader-方法でスタブ変数がnullであるということですが、私ドン「トンはなぜ知っている:

ViewStub stub = (ViewStub) findViewById(R.id.vsHeader); 
    View inflated = stub.inflate() 
+0

はあなたactivity_eclairを表示 – Rahul

+0

@Rasi私はチュートリアルのリンクを投稿してコード全体を表示しましたが、ここでコードを投稿するのは多すぎると思っていました – NoName123

+1

私の容疑者は、XMLで問題があります。私はリンクをチェックしましたが、 – Rahul

答えて

0

を私はちょうどactivity_eclairでViewStubを宣言するのを忘れて、私のエラーを検出しました:

<ViewStub 
     android:id="@+id/vsHeader" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:inflatedId="@+id/header" 
     android:layout="@layout/header" /> 
関連する問題