Я работаю над приложением Android, которое реализует NavigationDrawer.Фрагменты ящика Android Android
Навигатор работает отлично, поэтому переходы фрагментов, но я не могу получить доступ к элементам Фрагмента.
Здесь есть код моего ящика onItemClick()
слушателя:
ConfigureFragment configure = new ConfigureFragment();
Button bt;
InFragment in = new InFragment();
OutFragment out = new OutFragment();
ConditioningFragment cond = new ConditioningFragment();
private String lft = null;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
switch(position){
case 0:
if(lft == null){
transaction.replace(R.id.mainContent,configure,"ConfigureFragment");
transaction.commit();
lft = "ConfigureFragment";
}else{
transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),configure,"ConfigureFragment");
transaction.commit();
lft = "ConfigureFragment";
}
bt = (Button)configure.getView().findViewById(R.id.configure_bt); //throws NullPointerException
break;
case 1:
if(lft == null){
transaction.replace(R.id.mainContent,in,"InFragment");
transaction.commit();
lft = "InFragment";
}else{
transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),in,"InFragment");
transaction.commit();
lft = "InFragment";
}
break;
case 2:
if(lft == null){
transaction.replace(R.id.mainContent,out,"OutFragment");
transaction.commit();
lft = "OutFragment";
}else{
transaction.replace(fragmentManager.findFragmentByTag(lft).getId(),out,"OutFragment");
transaction.commit();
lft = "OutFragment";
}
break;
}
drawerLayout.closeDrawer(Gravity.LEFT);
}
Что? Если строка равна null, объект имеет значение null, и как вы можете вызвать метод объекта, если объект имеет значение null? Его сравнение lft == null или lft! = Null является правильным способом. – mobilepotato7
Это неправильное представление. При установке значения объекта на «null» сам объект ** НЕ ** становится «нулевым». В этом случае, если значение объекта 'String' установлено' null', он не делает объект 'null' из' String'. Он просто устанавливает ** значение ** объекта 'String' в значение« null ». Я знаю это хорошо, потому что я много страдал из-за всех этих заблуждений. :-) – Brandon
Хорошо, я знаю это, но это не моя проблема. Когда я использую функцию fragment.getView(). FindViewById (R.id.thefragmentitem), я получаю исключение NullPointerException. Зачем? –