Вы можете динамически обновлять все фрагменты, вы можете увидеть в три шага.
В вашем адаптере:
public class MyPagerAdapter extends FragmentPagerAdapter {
private static int NUM_ITEMS = 3;
private Map mFragmentTags;
private FragmentManager mFragmentManager;
public MyPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
mFragmentManager = fragmentManager;
mFragmentTags = new HashMap();
}
// Returns total number of pages
@Override
public int getCount() {
return NUM_ITEMS;
}
// Returns the fragment to display for that page
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return FirstFragment.newInstance();
case 1:
return SecondFragment.newInstance();
case 2:
return ThirdFragment.newInstance();
default:
return null;
}
}
// Returns the page title for the top indicator
@Override
public CharSequence getPageTitle(int position) {
return "Page " + position;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Object object = super.instantiateItem(container, position);
if (object instanceof Fragment) {
Fragment fragment = (Fragment) object;
String tag = fragment.getTag();
mFragmentTags.put(position, tag);
}
return object;
}
public Fragment getFragment(int position) {
Fragment fragment = null;
String tag = mFragmentTags.get(position);
if (tag != null) {
fragment = mFragmentManager.findFragmentByTag(tag);
}
return fragment;
}}
Теперь в вашей деятельности:
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
MyPagerAdapter mAdapterViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.vpPager);
mAdapterViewPager = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapterViewPager);
viewPager.addOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Fragment fragment = mAdapterViewPager.getFragment(position);
if (fragment != null) {
fragment.onResume();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}}
Наконец, в вашем фрагменте, что-то вроде этого:
public class YourFragment extends Fragment {
// newInstance constructor for creating fragment with arguments
public static YourFragment newInstance() {
return new YourFragment();
}
// Store instance variables based on arguments passed
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
// Inflate the view for the fragment based on layout XML
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container, false);
}
@Override
public void onResume() {
super.onResume();
//to refresh your view
refresh();
}}
Вы можете полный код см. здесь здесь .
Спасибо Альваро Луису Бустаманте.
Редактирование 27.10.2018: LDAC, APTX (-HD) и поддержка AAC PulseAudio находятся в работах. Существует репозиторий на GitHub EHfive с патчами, а также PPA для 18,04 прогрессивных, проверьте Wiki для получения дополнительной информации. Похоже, что патчи прибудут в восходящем направлении в какой-то момент вовремя. Я проверил PPA на 18,04, он работает, хотя он заменяет PA 11.1 12, устанавливает более новую версию ffmpeg и x265.
Редактирование 18.12.2017: Я, должно быть, пропустил его несколько недель назад, но похоже, что существует кодер теперь в FFmpeg. К моему знанию никакое удобное для пользователя решение не существует в данный момент.
необходимо использовать специальные фирменные аппаратные ключи Bluetooth. Взгляните на , Как я могу использовать aptX тогда? раздел этого ответа или просматривают сайт aptx.com для [1 152] передатчики .
<час>aptX кодек является собственным стандартом, тот , CSR, полученный от APT Licensing Ltd. с целью разработать и продать aptX, привел в действие высокое качество решения для аудио Bluetooth через компонент, выпускающийся под брендом . Вы корректны, это - стратегия CSR для продажи эксклюзивных микросхем.
я нашел следующий пункт при просмотре лицензионное соглашение декодера:
- реализуют программное обеспечение как встроенное микропрограммное обеспечение в безопасном коде, встроенном в продукт Лицензиата
, В то время как это не отвечает на вопросы о кодере, я сказал бы, что ситуация является, по крайней мере, столь же трудной как с другими собственными кодеками и компонентами программного обеспечения ( 1 , 2 , 3 ).
можно использовать его, просто не как решение для бесплатного программного обеспечения.
можно найти специальные фирменные аппаратные ключи Bluetooth, так называемые aptX Передатчики. Это не типичные нано или pico-размерные аппаратные ключи Bluetooth, но устройства Класса Аудио USB. (Взгляните на эти классы устройства раздел по статье USB в Википедии для получения дополнительной информации.) Это означает, что эти устройства будут распознаны как звуковые карты и не предоставят возможность соединения Bluetooth главному компьютеру. Существует также одна главная оборотная сторона: они стоят почти в 10 раз больше, чем регулярные аппаратные ключи Bluetooth.
Список aptX Передатчики или аппаратные ключи Bluetooth с поддержкой aptX в алфавитном порядке:
(Дополнения приветствуются! Я любил бы к see— предпочтительно cheaper— альтернативы.)
Установка bluez-hcidump
и выполненный sudo hcidump avdtp
, затем подключите устройство и ищите согласование конфигурации. Следующий это - результат, который я получил (см. также ), похоже, что это попробовало aptX, AAC и наконец согласилось на SBC.
$ sudo hcidump avdtp
HCI sniffer - Bluetooth packet analyzer ver 5.35
device: hci0 snap_len: 1500 filter: 0x400
< AVDTP(s): Discover cmd: transaction 11 nsp 0x00
> AVDTP(s): Discover rsp: transaction 11 nsp 0x00
ACP SEID 5 - Audio Sink
ACP SEID 3 - Audio Sink
ACP SEID 1 - Audio Sink
< AVDTP(s): Capabilities cmd: transaction 12 nsp 0x00
ACP SEID 5
> AVDTP(s): Capabilities rsp: transaction 12 nsp 0x00
Media Transport
Media Codec - non-A2DP (aptX)
16kHz 32kHz 44.1kHz 48kHz
Stereo
< AVDTP(s): Capabilities cmd: transaction 13 nsp 0x00
ACP SEID 3
> AVDTP(s): Capabilities rsp: transaction 13 nsp 0x00
Media Transport
Media Codec - MPEG-2,4 AAC
MPEG-2 AAC LC MPEG-4 AAC LC
8kHz 11.025kHz 12kHz 16kHz 22.05kHz 24kHz 32kHz 44.1kHz 48kHz
1 2 Channels
320000bps VBR
Content Protection
02 00
< AVDTP(s): Capabilities cmd: transaction 14 nsp 0x00
ACP SEID 1
> AVDTP(s): Capabilities rsp: transaction 14 nsp 0x00
Media Transport
Media Codec - SBC
16kHz 32kHz 44.1kHz 48kHz
Mono DualChannel Stereo JointStereo
4 8 12 16 Blocks
4 8 Subbands
SNR Loudness
Bitpool Range 2-53
Content Protection
02 00
< AVDTP(s): Set config cmd: transaction 15 nsp 0x00
ACP SEID 1 - INT SEID 1
Media Transport
Media Codec - SBC
44.1kHz
JointStereo
16 Blocks
8 Subbands
Loudness
Bitpool Range 2-53
> AVDTP(s): Set config rsp: transaction 15 nsp 0x00
< AVDTP(s): Open cmd: transaction 0 nsp 0x00
ACP SEID 1
> AVDTP(s): Open rsp: transaction 0 nsp 0x00
< AVDTP(s): Start cmd: transaction 1 nsp 0x00
ACP SEID 1
> AVDTP(s): Start rsp: transaction 1 nsp 0x00
< AVDTP(m): ver 2 cc 0 pt 1 seqn 0 time 0 ssrc 1
< AVDTP(m): ver 2 cc 0 pt 1 seqn 1 time 896 ssrc 1
я не знаю, будет ли Ubuntu по Телефонам поддерживать этот кодек. В документах CSR говорится, что решения доступны для производителей устройств на базе Android, таким образом, я предполагаю, что это до телефона manufacurers, чтобы решить если и как. Конечно, Касание Ubuntu обычно поддерживает гарнитуры Bluetooth, и я смог соединить свой Nexus 4 рабочий Ubuntu с гарнитурами, которые я протестировал.
<час>модули Bluetooth и аппаратные ключи протестировали:
Гарнитуры протестировали: