Я использую фрагменты. Мне нужен класс, расширяющий FragmentActivity для реализации интерфейса, который служит слушателем из моих фрагментов. Когда я нажимаю элемент из gridview, он запускает метод onItemClick, но переменная слушателя равна null, даже если я установил ее в GamePlayActivity.Интерфейс nullpointerexception в фрагменте onItemClickListener из gridview
Мое понимание заключается в том, что я работаю над двумя разными способами, когда я создаю экземпляр своего фрагмента для установки слушателя и когда onCreateView() вызывается в моем классе фрагментов.
Образец от Google выполняет ту же реализацию с onClick, и он работает. Не на моем.
MainActivity extending FragmentActivity и Fragment class например.
Фрагмент 1
public class FragmentOne extends Fragment implements OnItemClickListener {
Listener listener = null;
interface Listener {
public void applyGameLogic();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_fragpane, container, false);
GridView gridView = (GridView) layout.findViewById(R.id.grid);
gridView.setAdapter(new ImageAdapter(layout.getContext()));
gridView.setOnItemClickListener(this);
return layout;
}
public void setListener(Listener listener) {
this.listener = listener;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//listener.applyGameLogic(); this listener is null
}
}
GamePlayActivity
public class GamePlayActivity extends FragmentActivity implements WordPane.Listener, ChainPane.Listener {
private FragmentOne fragment1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.game_container);
fragment1 = new FragmentOne();
fragment1.setListener(this);
}
... applyGameLogic method follows but its empty for now
}
Красивая! Спасибо! Я использовал getSupportFragmentManager() в библиотеке поддержки. Это дало мне ошибки с getFragmentManager(). – awonderer