ProgressBar и handler

Интерфейс, диалоги, темы, стили, меню
Ответить
sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

ProgressBar и handler

Сообщение sheygam » 17 янв 2014, 19:09

Доброго время суток!
Возникла такая задача:
При старте аппликации нужно отобразил progress bar, потом запускается в handler через метод post(), runble кусок кода, и пока runble не отработает нужно показывать progress bar, xml файл для активити изначально подготовлен так что в нем ест progress bar и listview который скрыт, сам код работает но куда я только не пытался ставить handler.post() progress bar не отображается! может кто то решал такие задачи?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: ProgressBar и handler

Сообщение Foenix » 17 янв 2014, 20:24

я ничего не поняла
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

Re: ProgressBar и handler

Сообщение sheygam » 17 янв 2014, 22:02

Foenix писал(а):я ничего не поняла
В общем такая идея есть приложение, его стартовое активити, должно отобразить список определенных файлов, процесс создания этого списка очень трудоемкий поэтому формируется в асинтаске, и как только сформировался я его отображаю на активити. Чтобы показать что приложение чем то занято решил поставить в начале прогресс бар вот сам xml leyout

Код: Выделить всё

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"  
    android:orientation="vertical"
    tools:context=".PresentationListActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
     	android:gravity="center"
     	android:background="@color/gray"
        android:text="@string/presentation_list"
        android:textSize="20sp"
       />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="visible" />
	
    <ListView
        android:id="@+id/presList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:visibility="gone"
        android:background="@drawable/shape" >

    </ListView>

</LinearLayout>
изначально listview я скрываю
вот код самого onCreate

Код: Выделить всё

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.presentation_list_activity);
		presList = (ListView) findViewById(R.id.presList);
		pb = (ProgressBar) findViewById(R.id.progressBar1);
		CreatListPres clp = new CreatListPres(this);
		clp.execute();}
CreatListPres это иннер класс extends AsyncTask он формирут список для listview
в конце он задает все параметры скрывает progress bar и показывает список

Код: Выделить всё

@Override
		protected void onPostExecute(Void result) {
			presList.setAdapter(adapter);
			presList.setDivider(null);
			presList.setDividerHeight(0);
			pb.setVisibility(View.GONE);
			presList.setVisibility(View.VISIBLE);}
все работает кроме одного, progress bar не отображается вообще? пол дня сегодня убил, подумал что не правельно работаю с асинкТаском, переписал код через хендлер, но хоть бы хрен прогресс бар не в какую не хочет отображаться при старте приложения!

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: ProgressBar и handler

Сообщение Foenix » 17 янв 2014, 22:22

через хэндлер это как? с потоками?
Покажи код. я такое только через потоки делаю, мне с ними понятнее.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

Re: ProgressBar и handler

Сообщение sheygam » 17 янв 2014, 22:43

Foenix писал(а):через хэндлер это как? с потоками?
Покажи код. я такое только через потоки делаю, мне с ними понятнее.

Код: Выделить всё

handler = new Handler();
		handler.post(createAdapter);


Runnable createAdapter = new Runnable() {

		@Override
		public void run() {
			//TODO Create Dialog disconnect
			scanDirectory();
			adapter = new CustomList(PresentationListActivity.getInstance(), press, pressPath);
			presList.setAdapter(adapter);
			presList.setDivider(null);
			presList.setDividerHeight(0);
			pb.setVisibility(View.GONE);
			presList.setVisibility(View.VISIBLE);
};
но что через асинктаск что через хендлер эффект один и тот же, запуск программы несколько секунд белый экран потом показывается список, а прогресс бара нету :(

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: ProgressBar и handler

Сообщение Foenix » 17 янв 2014, 23:34

так а где обработка хендлера-то?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

Re: ProgressBar и handler

Сообщение sheygam » 17 янв 2014, 23:44

Foenix писал(а):так а где обработка хендлера-то?
Так теперь я что то не понял наверное, разве не вновом треде запускается что то ранбл через метод пост?

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
......
Handler h = new Handler();
h.post(createAdapter);
........
}
Runnable createAdapter = new Runnable() {

		@Override
		public void run() {
			//TODO Create Dialog disconnect
			scanDirectory();
			adapter = new CustomList(PresentationListActivity.getInstance(), press, pressPath);
			presList.setAdapter(adapter);
			presList.setDivider(null);
			presList.setDividerHeight(0);
			pb.setVisibility(View.GONE);
			presList.setVisibility(View.VISIBLE);
			
		}
	};
также обрабатывается хандлер если не сообщениями а именно запустить кусок кода в активити?
http://startandroid.ru/ru/uroki/vse-uro ... nable.html
вроде бы в уроке так было описано, или я что то не до понял?

Ответить