をダブルクリックで発生する私は、メイン断片(以下に定義)アプリのクラッシュのアイコンリスナー
ツールバーフラグメント(どこでも使用される一般的なツールバーフラグメントで定義された左のアイコンリスナーのプロパティで呼び出されているツールバーの断片を持っています)ヘッダとして
public void refresh(commonFragment f) {
if (view != null && f != null && !commonFragment .class.equals(f.getClass()) && !BlankcommonFragment .class.equals(f.getClass())) {
setRightIcon(f.getRightIcon(), f.getRightIconListener());
setLeftIcon(f.getLeftIcon(), f.getLeftIconListener());
}
}
共通フラグメント(共通プロパティは、再使用のためにここに保持)
public Integer getLeftIcon() {
return R.drawable.left_fragment_icon;
}
public View.OnClickListener getLeftIconListener() {
return new NavigationOnClickListener(this, new LeftFragment());
}
public View.OnClickListener getRightIconListener() {
return MenuFragment.instance().getDashboardIconListener();
}
ページフラグメント(問題は左のアイコンをリスナーに発生したページ)
@Override
public Integer getLeftIcon() {
return R.drawable.back_icon;
}
@Override
public View.OnClickListener getLeftIconListener() {
return new NavigationOnClickListener(this, new HomeFragment());
}
NavigationOnClickListener(ナビゲーションの利用)
public class NavigationOnClickListener implements View.OnClickListener {
private Common Fragment from;
private Common Fragment to;
public NavigationOnClickListener(Common Fragment from, Common Fragment to) {
this.from = from;
this.to = to;
}
@Override
public void onClick(View v) {
from.navigate(to);
}
}
バックボタンアイコンと左のアイコントグル(同じ画像ビューが、異なる画像IDで)をクリックすると、別のページに表示されます。
例:
A、B、Cの3つのフラグメントがあり、Bはホームフラグメントです。それはAが表示されますB上の左のアイコンをクリックすると、Cの背面のアイコンをクリックして
は問題が戻ってアイコンをダブルクリックアプリをクラッシュさ
Bに表示されます
NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
views.setAdapterバックボタンを複数回クリックでクラッシュを防止するための方法
public View build(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { //line added
...
View home = inflater.inflate(R.layout.fragment_home, container, false);
final Activity activity = this.getActivity();
final HomeFragment fragment = this;
@Override
public void onSuccess(Call<List<xyzView>> call, Response<List<xyzView>> response) {
ListView views = (ListView) container.findViewById(R.id.course_list);
views.setAdapter(new xyzAdapter(activity, R.layout.fragment_home_item, response.body(), fragment));
に来エラー?
あなた 'ListView'、すなわち' views'はnullです。コンテナとは何ですか? – SripadRaj
@SripadRajは、 'Error comming on views.setAdapter'にメインラインを追加しました。そこにはコンテナがあります。 –
'new HomeFragment()'を作成すると、それに含まれるビューは初期化されません。 –