私はこのチュートリアルに従って、アンドロイドでダッシュボードのレイアウトを構築しようとしています:抽象クラスのイベントハンドラを定義しますが作成されますチュートリアルこの中アンドロイド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()
はあなたactivity_eclairを表示 – Rahul
@Rasi私はチュートリアルのリンクを投稿してコード全体を表示しましたが、ここでコードを投稿するのは多すぎると思っていました – NoName123
私の容疑者は、XMLで問題があります。私はリンクをチェックしましたが、 – Rahul