Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2017, 11:00   #1
action889
Новичок
Джуниор
 
Регистрация: 10.06.2015
Сообщений: 1
По умолчанию Изменить текст на TextView на не активном табе(фрагменте)

У меня приложение с Navigation Drawer которое имеет 6 фрагментов. Первый фрагмент называется MainFragment. MainFragment в свою очередь имеет 4 фрагмента(таба). Они называются FragmentOne(COMMON), FragmentTwo(Battery), FragmentThree(Internal), FragmentFour(Internal).В MainActivity запускается AsyncTask(MyTask) который меняет текст в текущем фрагменте OneFragment(Common) и на не активном фрагменте ThirdFragment(Internal). Мой вопрос: этот AsyncTask не может изменить текст на TextView на этих табах(Common and Internal). Как это сделать? Что я делал: если сделать активным таб Common(FragmentOne) TabLayout.getTabAt(0).select() то изменение текста на TextView на Common(FragmentOne) работает. Если переключиться на третий таб Internal(FragmentThree) TabLayout.getTabAt(2).select() то срабатывает exception. Как изменить текст TextView на не активном фрагменте. Исходный код прилагается. Основные фрагменты: MainActivity MainFragment FragmentFirst FragmentSecond .... FragmentSix.

Исходный код
https://yadi.sk/d/2IyWYe0f3J6Pmo

Цитата:
class MyTask extends AsyncTask<Void, Void, Integer> {

@Override
protected Integer doInBackground(Void... params) {
//Thread.currentThread().setPriority( Thread.MIN_PRIORITY);
while (!isCancelled()) {
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress();
}
return null;
}

@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);

Log.d(TAG, "MainFragment do try");

try {
//tabLayout.getTabAt(0).select(); textV1.setText не работает когда tab(0) не активен

TextView textV1 = (TextView) findViewById(R.id.TextName2);
textV1.setText("InternalMemory");

TextView textV2 = (TextView) findViewById(R.id.textParam6);
textV2.setText("All: "+bytesToHuman(getTotalInternalSpac e()));

TextView textV3 = (TextView) findViewById(R.id.textParam7);
textV3.setText("Path: "+getInternalMemoryPath());

TextView textV4 = (TextView) findViewById(R.id.textParam9);
textV4.setText("Free: "+bytesToHuman(getAvailableInternal SpaceSize()));

int t4 = (int) Math.ceil(((getAvailableInternalSpa ceSize()*100)/getTotalInternalSpace()));
TextView textV5 = (TextView) findViewById(R.id.textParam8);
textV5.setText(String.format("%d ",t4) + "% ");

ProgressBar textV6 = (ProgressBar) findViewById(R.id.progressBar1);
textV6.setProgress(t4);
if (t4<=20) {
textV6.getProgressDrawable().setCol orFilter(Color.RED, PorterDuff.Mode.SRC_IN);
} else if ((t4>20) && (t4<=40)){
textV6.getProgressDrawable().setCol orFilter(Color.MAGENTA, PorterDuff.Mode.SRC_IN);
} else if ((t4>40) && (t4<=60)){
textV6.getProgressDrawable().setCol orFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN);
} else if ((t4>60) && (t4<=80)){
textV6.getProgressDrawable().setCol orFilter(Color.BLUE, PorterDuff.Mode.SRC_IN);
} else if ((t4>80) && (t4<=90)){
textV6.getProgressDrawable().setCol orFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
} else if ((t4>90) && (t4<=100)){
textV6.getProgressDrawable().setCol orFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
} else textV6.getProgressDrawable().setCol orFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
Log.d(TAG, "MainFragment do internalMemoryInfo");


//tabLayout.getTabAt(2).select();Thre eFragment.showText не работает когда tab(2) не активен

ThreeFragment.showText(textV2.getTe xt() + "\n" +
textV3.getText() + "\n" +
textV4.getText() + "\n" +
"Percent: " + textV5.getText());

Log.d(TAG, "MainFragment posle internalMemoryInfo");

} catch (Exception e) {
Log.d(TAG, "MainFragment in Exception");
e.printStackTrace();
}
}
action889 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TextView с подсказкой (android) No_Comments Мобильные ОС (Android, iOS, Windows Phone) 1 14.02.2014 11:49
Изменить текст сообщения Balexander Microsoft Office Access 1 23.10.2013 12:36
Поиск в выделенном фрагменте cw_o Microsoft Office Word 2 04.09.2012 09:41
TWebBrowser - изменить текст ссылки AvRob Компоненты Delphi 8 23.07.2012 17:02
Название сайта в табе revaldo666 Windows Forms 0 09.11.2011 13:36