Okhelp.cz

Recepty, články, nápady, programování. Dříve dum-zahrada, finance, internet a know-how.okhelp.cz Pro lepší výsledky hledání používejte i diakritiku.

AsyncTask Example Android with ProgressBar


AD MOB

MainActivity.java

package com.asynctaskexample;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView textView;
	private ProgressBar progressBar;
	private DownloadWebPageTask mTask = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textView = (TextView) findViewById(R.id.TextView01);
		downloadPage();
	}

	// AsyncTask <TypeOfVarArgParams , ProgressValue , ResultValue> .
	private class DownloadWebPageTask extends AsyncTask<String, Integer, String> {

		@Override
		protected void onPreExecute() {
			//textView.setText("Hello !!!");
			progressBar = (ProgressBar) findViewById(R.id.progressBar1);
			progressBar.setVisibility(View.VISIBLE);
			super.onPreExecute();
		}

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

		}

		@Override
		protected String doInBackground(String... urls) {
			String response = "";
			for (String url : urls) {
				DefaultHttpClient client = new DefaultHttpClient();
				HttpGet httpGet = new HttpGet(url);
				try {
					HttpResponse execute = client.execute(httpGet);
					InputStream content = execute.getEntity().getContent();

					BufferedReader buffer = new BufferedReader(new InputStreamReader(
							content));
					String s = "";
					while ((s = buffer.readLine()) != null) {
						response += s;
					}

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			return response;
		}

		@Override
		protected void onPostExecute(String result) {
			progressBar.setVisibility(View.INVISIBLE);
			textView.setText(result);
		}
	}

	private void downloadPage() {
		if (mTask != null
				&& mTask.getStatus() != DownloadWebPageTask.Status.FINISHED) {
			mTask.cancel(true);
		}
               // execute(String[]) you can put array of links to web pages, or array of Integer[] 
               // if first param is Integer[] etc.
		mTask = (DownloadWebPageTask) new DownloadWebPageTask()
				.execute(new String[] { "//android.okhelp.cz/android-market.html",
						"//android.okhelp.cz/android-market.html" });
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();

		if (mTask != null
				&& mTask.getStatus() != DownloadWebPageTask.Status.FINISHED) {
			mTask.cancel(true);
			mTask = null;
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}




activity_main.xml

<LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</LinearLayout>



AndroidManifest.xml do not forget INTERNET uses-permission !!!!!!!

<uses-permission android:name="android.permission.INTERNET" />


397LW NO topic_id




AD

Další témata ....(Topics)


158

Check Internet connection Android example | check-internet-connection-android-example



public boolean isConnected() {
	 try {
		ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		 return cm.getActiveNetworkInfo().isConnectedOrConnecting();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		Log.e("isConnected", e.getMessage());
		Toast.makeText(getApplicationContext(), e.getMessage(),
				Toast.LENGTH_LONG).show();
		return false;
	}


370

Android Studio failed to convert drawable into a drawable | android-studio-failed-to-convert-drawable-into-a-drawable


Try this:
- check names of drawables (file name must contain only abc...xyz 012...789 _ . in Resources folder ,
names have to start with lower case
MyImage.jpg == problem ,
names with space
my image.jpg == problem,
names with -
my-image.png == problem)
- check duplicate names with other extension ( my_image.jpg - my_image.png makes the problem)
- restart Android Studio
- if problem persist:
- check c:\Users\me\AndroidStudioProjects\myProject\myModule\build\intermediates\res\merged\debug\ drawable folder for corupted names or delete ALL drawable folders
- synk projekt, rebuild projekt
- if problem persist:
- restart Android Studio, wait for complete closure of the Android Studio!
183

HTC Sensation 4G | htc-sensation-4g


HTC Sensation 4G cena od 11 000 KCZ Kč (únor.2012)
Spokojenost uživatelů nadprůměrná.
HTC Sensation 4G je chytrý telefon s operačním systémem Android.
HTC Sensation 4G je (22.února2012) 10. nejpoužívanějším chytrým telefonem u programu Sky Map viz tabulka.


Výrobce HTC
Kompatibilní sítě GSM / GPRS / EDGE
850 900 1800 1900 MHz
UMTS / HSPA
850 1900 2100 nebo 900 1700 2100 MHz
HSDPA 14,4 Mbps
HSUPA 5.76 Mbps
První předvedení 19.května 2011
Zaváděcí cena US 199,99 dolarů
Nástupce HTC Sensation XE, HTC 4G Amaze
Rozměry 126.1 mm (4.96 v) H
65.4 mm 2,57 in) W
11.3 mm (0,44 in) D
Hmotnost 148 g
Operační systém Android 2.3.3 Gingerbread (upgrade až na 2.3.4),
HTC Sense 3.0 overlay

Procesor:
Dual-core CPU, 1.2 GHz Qualcomm MSM8260 Snapdragon, Sensation XE dual-core 1,5 GHz Qualcomm MSM8260 Snapdragon, Sensation XL jednoho jádra 1,5 GHz Qualcomm MSM8255 Snapdragon
GPU Qualcomm adreno 220, Sensation XL adreno 205

Paměť 768 MB RAM
4 GB (1 GB uživatelsky dostupných)
Paměť vyjmutelná: 8 GB microSD 2.0, podporuje až 32 GB

Baterie 1520 mAh vnitřní dobíjecí Li-ion vyměnitelné
Datové vstupy A-GPS, čidlo okolního osvětlení, digitální kompas, G-senzor, gyroskop, multi-touch kapacitní dotykový displej, snímač
Displej 4.3 v (110 mm) kapacitní S-LCD dotykový displej Gorilla skla s QHD (540 × 960) rozlišením na 256.15 PPI
Fotoaparát na zadní straně s 8 miliony pixelů (3264 x 2448) s automatickým ostřením a dvojitým LED bleskem a 1080p HD video záznamu @ 30 snímků / s, kohoutek k zaměření s digitálním zoomem
Fotoaparát na přední straně VGA pevné zaostření barevná kamera (0,3 megapixelů)
Kompatibilní média formáty audio AAC, AMR, OGG, M4A, MIDI, MP3, WAV, WMA
Video 1920 × 1080 (1080p HD) @ 30 snímků / s - 3GP, .3 G2, MP4, WMV, AVI, XVID
Vyzváněcí tóny a oznámení všechny kompatibilní audio formáty
Vibrace
Připojení 3.5 mm TRRS konektor, Bluetooth 3.0 s A2DP, FM přijímač (87,5 - 108 MHz) s RDS, Micro USB 2.0 (5-pin) port s Mobile High-Definition Link (MHL) pro USB nebo HDMI připojení, Wi-Fi 802.11b/g/n
Zdroj: wikipedia


HTC Sensation 4G photo pic image
HTC Sensation 4G
Zdroj obrázku: wikipedia
40

Spinner ComboBox DropDown set on selected item listener setOnItemSelectedListener Java Android example | spinner-combobox-set-on-selected-item-listener-setonitemselectedlistener-java-android-example


Spinner, ArrayAdapter, setOnItemSelectedListener, onItemSelected, setDropDownViewResource

MainClass.java

public class Vypocet extends Activity {
 Spinner   hSpinnerMetry;
// .......
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

	       hSpinnerMetry = (Spinner) findViewById(R.id.idSpinnerMetry);
	        ArrayAdapter<CharSequence> adapterMetry = ArrayAdapter.createFromResource(
	        		this, R.array.metry_array, android.R.layout.simple_spinner_item);
	        adapterMetry.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	        hSpinnerMetry.setAdapter(adapterMetry);
			
	           hSpinnerMetry.setOnItemSelectedListener(
	                    new OnItemSelectedListener() {
	                        public void onItemSelected(
	                                AdapterView<?> parent, View view, int position, long id) {
	                        int nPos = position;
	                        }

	                        public void onNothingSelected(AdapterView<?> parent) {
	                        
	                        }
	                    });	        

      }
}



strings.xml


<string-array name="metry_array">
<item>m</item>
<item>dm</item>
<item>cm</item>
<item>mm</item>
</string-array>


204

java.lang.NullPointerException: println needs a message | java-lang-nullpointerexception-println-needs-a-message


Problemi is in e.getMessage() what can return null and Log.e (String tag, String msg) will throws an new exception !!!!
Problem and solution:

      	try {
      		int [] i = {1};
      		int z = i[5];
      	} catch (ArrayIndexOutOfBoundsException e) {
      		String s = e.toString(); // s == java.lang.ArrayIndexOutOfBoundsException
                // try to testing String s for null value
      		if(s != null)
      		 Log.e("bla", s);
      		else 
      		 Log.e("bla", "My error text 1");
      		
      		String s2 = e.getMessage(); // s2 == null !!!!!!!
                // you need to testing String s2 for null value , or you get FATAL EXCEPTION: main
                // and application will be crashed
       		String s2 = e.getMessage(); // s2 == null !!!!!!!
      		if(s2 != null)
      		 Log.e("bla2", e.getMessage());
      		else 
      		 Log.e("bla2", "My error text 2");
     		
                // this is OK
      		e.printStackTrace();
      	}


LogCat:

E/bla(855): java.lang.ArrayIndexOutOfBoundsException

 E/bla2(855): My error text 2

 W/System.err(855): java.lang.ArrayIndexOutOfBoundsException
 W/System.err(855): 	at cz.okhelp.motion._MotionActivity.onTouchEvent(_MotionActivity.java:54)
 W/System.err(855): 	at android.app.Activity.dispatchTouchEvent(Activity.java:2099)
 W/System.err(855): 	at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675)
 W/System.err(855): 	at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194)
 W/System.err(855): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1878)
 W/System.err(855): 	at android.os.Handler.dispatchMessage(Handler.java:99)
 W/System.err(855): 	at android.os.Looper.loop(Looper.java:123)
 W/System.err(855): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
 W/System.err(855): 	at java.lang.reflect.Method.invokeNative(Native Method)
 W/System.err(855): 	at java.lang.reflect.Method.invoke(Method.java:507)
 W/System.err(855): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 W/System.err(855): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
 W/System.err(855): 	at dalvik.system.NativeStart.main(Native Method)




Or you can using this code:

      	try {
      		int [] i = {1};
      		int z = i[5];
      	} catch (Exception e) {
      		
      		
      		StringBuilder sb = new  StringBuilder().append(e.getClass().getSimpleName()); 
          if  (e.getMessage() != null) { 
              sb.append("

"); sb.append(e.getMessage()); } Log.e("err", sb.toString()); // E/err(336): ArrayIndexOutOfBoundsException // this code write out all message Log.e("myError", "methodName", e); } // E/myError(371): methodName // E/myError(371): java.lang.ArrayIndexOutOfBoundsException // E/myError(371): at cz.okhelp.motion._MotionActivity.onTouchEvent(_MotionActivity.java:54) // E/myError(371): at android.app.Activity.dispatchTouchEvent(Activity.java:2099) // E/myError(371): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675) // E/myError(371): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194) // E/myError(371): at android.view.ViewRoot.handleMessage(ViewRoot.java:1878) // E/myError(371): at android.os.Handler.dispatchMessage(Handler.java:99) // E/myError(371): at android.os.Looper.loop(Looper.java:123) // E/myError(371): at android.app.ActivityThread.main(ActivityThread.java:3683) // E/myError(371): at java.lang.reflect.Method.invokeNative(Native Method) // E/myError(371): at java.lang.reflect.Method.invoke(Method.java:507) // E/myError(371): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) // E/myError(371): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) // E/myError(371): at dalvik.system.NativeStart.main(Native Method)



Editace: 2012-12-27 15:30:36
Počet článků v kategorii: 397
Url:asynctask-example-android-with-progressbar

AD
11 Share
Share
Tweet