Фрагмент:
public class ft_music_all extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.ft_all_music, null);
}
}
Activity
private void start_navigator_left() { //Рисуем навигатор
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
DrawerBuilder builder = new DrawerBuilder()
.withActivity(this)
.withToolbar(toolbar)
.withHeader(R.layout.drawer_header)
.addDrawerItems(
new SecondaryDrawerItem().withIcon(R.drawable.mymusic).withName(R.string.my_music),
new SecondaryDrawerItem().withIcon(R.drawable.searchmusic).withName(R.string.search_music),
new SecondaryDrawerItem().withIcon(R.drawable.settings).withName(R.string.settings)
)
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {
if (drawerItem != null) {
if (drawerItem instanceof Nameable) {
toolbar.setTitle(((Nameable)
drawerItem).getNameRes());
}
if(position == 0) {
ft_my_music fragment;
FragmentTransaction fTrans;
fragment = new ft_my_music();
fTrans = getFragmentManager().beginTransaction();
fTrans.replace(R.id.ft_panel, fragment);
fTrans.commit();
}
if(position == 1) {
ft_music_all fragment = new ft_music_all();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.add(R.id.ft_panel, fragment)
.addToBackStack("myStack")
.commit();
create_fragments(); // ЗАПОЛНЯЕМ LISTVIEW ПОДГРУЖЕННОГО ФРАГМЕНТА
}
}
return false;
}
});
builder.build();
}
Метод заполнения фрагмента:
public void create_fragments() {
btnPlayImg = this.findViewById(R.id.btnPlayImg);
btnLike = this.findViewById(R.id.btnLike);
txtViewSingle = this.findViewById(R.id.txtViewSingle);
txtViewTrack = this.findViewById(R.id.txtViewTrack);
seekBar=(SeekBar) findViewById(R.id.musicSeekBar);
listView = (ListView) findViewById(R.id.musicList);
listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE);
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int checked_element = position - listView.getFirstVisiblePosition();
visibleElem(index_track);
musicDaemon.analize_track(position);
adapterUpdate(checked_element, 1);
index_track=position;
}
});
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean input) {
if (input)
musicDaemon.mediaPlayer.seekTo(progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
music_start();
}
Дело в том, что при вызове этого блока:
if(position == 1) {
ft_music_all fragment = new ft_music_all();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.add(R.id.ft_panel, fragment)
.addToBackStack("myStack")
.commit();
create_fragments(); // ЗАПОЛНЯЕМ LISTVIEW ПОДГРУЖЕННОГО ФРАГМЕНТА
}
Вызывает ошибку в create_fragments(). Если данный метод я вызываю из кнопки (onClick), все отрабатывает хорошо. Такое ощущение, что данная функция отрабатывает тогда, когда фрагмент еще не до конца загружен. Как лечить?
Как создать параллельный поток в приложении реализованном на Spring MVCЧтобы при загрузке сервера создавался новый поток, который например бы каждую...
Создаю базу данных магазина, использую jpa hibernateЕсть 4 класса-сущности:
У меня есть TabLayout c 2 вкладками и ViewPagerВ каждую вкладку надо установить свои функции FloatingActionButton (в одном фрагменте она выполняет одну функцию,...