-1
これは多くの受け入れられた回答の共通の問題のようですが、どれも私のために働いていないようです。フラグメント内のツールバーが起動時にアプリケーションをクラッシュする
ほとんどの答えはフラグメントにツールバーを追加するためのコードのこの部分を使用することをお勧め:
mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar);
if (mToolbar != null) {
((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar);
}
残念ながら、これはまだ私はAppCompatActivityを使用していていても私のアプリがクラッシュします。私のエラーは、私のFragmentクラスがFragmentを拡張し、AppCompatActivityを拡張していないという事実にあるかもしれないと思うが、まだこれを確かめるためにはアンドロイドについては十分に分かっていない。 setSupportActionBar行でクラッシュします。
マイ断片コード:
package erikligai.ribbitapplication;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
* Created by erik on 2017-06-07.
*/
public class MessageFragment extends Fragment {
Toolbar mToolbar;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// return inflater.inflate(R.layout.message_fragment_layout, container, false);
View rootView = inflater.inflate(R.layout.message_fragment_layout, container, false);
mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar);
if (mToolbar != null) {
((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar);
}
return rootView;
}
は、任意の提案をお願い申し上げます。
から、私はあなたがNullPointerExceptionが持っていることを前提とし、
Activity
から取得AppCompatActivity
Toolbar
にgetActivity()
からあなたの活動をキャストする必要があります。 なぜツールバーをフラグメントビューから挿入しようとしていますか? – fbwndあなたのlogcatを投稿してください。 – SripadRaj
また、ツールバーのインフレーションをフラグメントにではなく、アクティビティに委譲します。 –