do while cycle Java basic example
do while Java example
public class MainClass {
public static void main(String[] arg) {
String[] arrayOfString = { "Hello", "people", "hello", "world!" };
int i = 0;
// first cycle is always executed
do {
System.out.println("Loop: " + i);
System.out.println(arrayOfString[i]);
i++;
}while ( i == -1 );
}
}
/*
Loop: 0
Hello
*/
public class MainClass {
public static void main(String[] arg) {
String[] arrayOfString = { "Hello", "people", "hello", "world!" };
int i = 0;
do {
System.out.println("Loop: " + i);
System.out.println(arrayOfString[i]);
i++;
}while ( i < arrayOfString.length );
}
}
/*
Loop: 0
Hello
Loop: 1
people
Loop: 2
hello
Loop: 3
world!
*/
396LW NO topic_id
AD
Další témata ....(Topics)
Chytré telefony s Androidem - tabulka srovnání dle ceny:
Výrobce |
Model (codename) |
Cena, včetně DPH |
CPU MHz |
displej-rozlišení |
Velikost displeje v palcích |
ROM |
RAM |
---|---|---|---|---|---|---|---|
Huawei |
Vodafone 845 (U8120, Joy) |
1979 |
528 |
240x320 |
2.8 |
512 |
256 |
ZTE |
Vodafone 945 (ZTE Joe) |
1999 |
600 |
240x400 |
3.2 |
512 |
512 |
Huawei |
Vodafone 858 Smart (U8160) |
2177 |
528 |
240x320 |
2.8 |
512 |
256 |
Alcatel |
T-Mobile Move (OT 908) |
2294 |
600 |
240x320 |
2.8 |
512 |
512 |
Samsung |
Galaxy Y (S5360) |
2495 |
832 |
240x320 |
3 |
512 |
256 |
ZTE |
Racer II (Arizona) |
2536 |
500 |
240x320 |
2.8 |
512 |
256 |
Huawei |
Ideos X1 (U8180, Orange Stockholm) |
2549 |
528 |
240x320 |
2.8 |
512 |
256 |
Huawei |
U8100 |
2595 |
528 |
240x320 |
2.8 |
512 |
256 |
Huawei |
U8500 |
2699 |
600 |
320x480 |
3.2 |
512 |
256 |
Samsung |
Galaxy Mini (S5570) |
2799 |
600 |
240x320 |
3.14 |
512 |
256 |
Samsung |
Galaxy 5, 550 (i5500) |
2855 |
600 |
240x320 |
2.8 |
512 |
256 |
LG |
Optimus Me (P350) |
2924 |
600 |
240x320 |
2.8 |
512 |
512 |
SE |
Xperia X8 |
2977 |
600 |
320x480 |
3 |
512 |
256 |
Gigabyte |
GSmart G1310 (Roy) |
2990 |
528 |
320x480 |
3.2 |
512 |
256 |
MyPhone |
A210 |
2990 |
624 |
240x400 |
3 |
256 |
128 |
ZTE |
Orange San Francisco (ZTE Blade, U880, P729V) |
2999 |
600 |
480x800 |
3.5 |
512 |
512 |
HTC |
Explorer (Pico) |
3104 |
600 |
320x480 |
3.2 |
512 |
512 |
Huawei |
U8650 (Sonic) |
3290 |
600 |
320x480 |
3.5 |
512 |
256 |
Huawei |
Ideos X3 (U8510, Blaze) |
3377 |
600 |
320x480 |
3.2 |
512 |
256 |
Samsung |
Galaxy Y Pro (B5510) |
3390 |
832 |
240x320 |
2.6 |
|
|
Gigabyte |
GSmart G1317D (Rola) |
3504 |
528 |
240x400 |
3.2 |
512 |
256 |
SE |
Xperia Live Walkman (WT19i) |
3554 |
1000 |
320x480 |
3.2 |
1024 |
512 |
Huawei |
T-Mobile Comet (Ideos, U8150) |
3600 |
528 |
240x320 |
2.8 |
512 |
256 |
SE |
Xperia X10 mini pro (U20i, Mimmi) |
3777 |
600 |
240x320 |
2.55 |
512 |
256 |
LG |
Optimus Swift (GT540) |
3800 |
600 |
320x480 |
3 |
512 |
256 |
SE |
Xperia Mini (ST15) |
3800 |
1000 |
320x480 |
3 |
1024 |
512 |
LG |
Optimus One (P500) |
3919 |
600 |
320x480 |
3.2 |
512 |
512 |
LG |
Optimus Pro |
3928 |
800 |
240x320 |
2.8 |
512 |
256 |
HTC |
Wildfire (Buzz, Mocha, A3333) |
3999 |
528 |
240x320 |
3.2 |
512 |
384 |
LG |
Optimus Net (P690) |
4108 |
800 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy Gio (S5660) |
4185 |
800 |
320x480 |
3.2 |
512 |
384 |
LG |
Optimus Hub (Univa) |
4195 |
800 |
320x480 |
3.5 |
512 |
512 |
SE |
Xperia X10 mini (E10i, Robyn) |
4195 |
600 |
240x320 |
2.55 |
512 |
256 |
Samsung |
Galaxy 3, 580, Taos (i5800) |
4500 |
667 |
240x400 |
3.2 |
512 |
256 |
Samsung |
Galaxy Ace+ (S7500) |
4550 |
1000 |
320x480 |
3.65 |
4096 |
512 |
LG |
Optimus Chic (E720) |
4550 |
600 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy 551 (i5510) |
4577 |
667 |
240x400 |
3.2 |
512 |
512 |
Motrolola |
Liquid Mini E310 |
4600 |
600 |
320x480 |
3.2 |
512 |
512 |
HTC |
Wildfire S (Marvell) |
4777 |
600 |
320x480 |
3.2 |
512 |
512 |
Verzo |
Kinzo |
4799 |
1000 |
480x800 |
4.3 |
512 |
512 |
Samsung |
Galaxy Ace (S5830) |
4800 |
800 |
320x480 |
3.5 |
512 |
256 |
Motorola |
Defy mini |
4800 |
600 |
320x480 |
3.2 |
512 |
512 |
Samsung |
Galaxy Spica, Portal, Lite (i5700) |
4800 |
800 |
320x480 |
3.2 |
512 |
256 |
HTC |
Gratia (A6380, Liberty, Aria) |
4937 |
480 |
320x480 |
3.2 |
512 |
384 |
SE |
Xperia mini pro (SK17i, Mango) |
4944 |
1000 |
320x480 |
3 |
1024 |
320 |
Huawei |
Ideos X5 (U8800) |
4977 |
800 |
480x800 |
3.8 |
4096 |
512 |
HTC |
Salsa (C510e) |
4990 |
600 |
320x480 |
3.4 |
576 |
512 |
Huawei |
Boulder |
4998 |
528 |
240x320 |
2.6 |
512 |
256 |
ZTE |
Orange Monte Carlo (ZTE Skate) |
5177 |
800 |
480x800 |
4.3 |
512 |
512 |
Samsung |
Galaxy S (i9000) |
5300 |
1000 |
480x800 |
4 |
15600 |
512 |
Gigabyte |
GSmart G1315 |
5490 |
528 |
320x480 |
3.5 |
512 |
256 |
SE |
Xperia Active |
5500 |
1000 |
320x480 |
3 |
1024 |
512 |
Samsung |
Google Nexus One |
5750 |
1000 |
480x800 |
3.7 |
512 |
512 |
HTC |
Desire (A8181, Bravo) |
5999 |
1000 |
480x800 |
3.7 |
576 |
512 |
LG |
Optimus Black (P970) |
6000 |
1000 |
480x800 |
4 |
1908 |
512 |
SE |
Xperia Play |
6000 |
1000 |
480x854 |
4 |
|
|
LG |
Optimus Sol (Victor, E730) |
6000 |
1000 |
480x800 |
3.8 |
2048 |
512 |
Acer |
Liquid Metal S120 |
6061 |
800 |
480x800 |
3.6 |
512 |
512 |
Samsung |
Google Nexus S |
6200 |
1000 |
480x800 |
4 |
15600 |
512 |
HTC |
Desire Z (A7272, Vision) |
6200 |
800 |
480x800 |
3.7 |
1536 |
512 |
Samsung |
Galaxy W (i8150, Ancora) |
6200 |
1400 |
480x800 |
3.7 |
4096 |
512 |
SE |
Xperia Ray (ST18i) |
6344 |
1000 |
480x854 |
3.3 |
1024 |
512 |
Motorola |
Defy (MB525, Jordan) |
6377 |
800 |
480x854 |
3.7 |
1908 |
512 |
Motorola |
Defy + (MB526) |
6377 |
1000 |
480x854 |
3.7 |
1908 |
512 |
Samsung |
Galaxy XCover (S5690) |
6399 |
800 |
320x480 |
3.65 |
512 |
512 |
Gigabyte |
GSmart G1345 |
6490 |
800 |
320x480 |
3.5 |
512 |
512 |
HTC |
Evo 3D |
6500 |
1200 |
540x960 |
4.3 |
1024 |
1024 |
HTC |
Desire HD (Ace) |
6500 |
1000 |
480x800 |
4.3 |
1900 |
768 |
Huawei |
Honour (U8660) |
6500 |
1400 |
480x854 |
4 |
4096 |
512 |
SE |
Xperia Neo |
6590 |
1000 |
480x854 |
3.7 |
1024 |
512 |
HTC |
Legend (A6363) |
6784 |
600 |
320x480 |
3.2 |
512 |
384 |
Huawei |
Vision (U8850) |
6999 |
1000 |
480x800 |
3.7 |
2048 |
512 |
SE |
Xperia Arc (LT15i) |
7390 |
1000 |
480x854 |
4.2 |
1024 |
512 |
SE |
Xperia Pro (MK16i) |
7890 |
1000 |
480x854 |
3.7 |
1024 |
512 |
HTC |
Hero |
7975 |
528 |
320x480 |
3.2 |
288 |
512 |
SE |
Xperia Arc S (LT18i) |
8590 |
1400 |
480x854 |
4.2 |
1024 |
512 |
Samsung |
Xperia Live Walkman (WT19i) |
9700 |
1500 |
480x800 |
4.3 |
16000 |
1024 |
Motorola |
Droid Razr |
11800 |
1200 |
540x960 |
4.3 |
15600 |
1024 |
MainActivity.java
res/layout/main.xml
res/drawable/my_progress.xml
ProgressBar mProgressBarScore;
// onCreate
mProgressBarScore = (ProgressBar)findViewById(R.id.progressBarScore);
Resources res = getResources();
mProgressBarScore.setProgressDrawable(res.getDrawable( R.drawable.my_progress));
res/layout/main.xml
<ProgressBar
android:id="@+id/progressBarScore"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:max="100"/>
res/drawable/my_progress.xml
-
android:startColor="#FF001A"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#FF001A"
android:angle="270"
/>
-
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
android:id="@android:id/progress"
>
android:radius="10dip" />
android:startColor="#00ff00"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#339900"
android:angle="270" />
Converting to string: TypedValue{t=0x10/d=0xe a=-1}
- 14
// error
- "18"
// ok
6. Fragments Tutorial Summary – Czech language
Dil 6. shrnutí
V 1. dílu jsme se něco dozvěděli od XML souborech a typu procesoru pro správný běh Android Studia a emulátoru různých typů zařizení s Androidem.
- FrameLayout: můžeme měnit obsah kontejneru
- fragment s plnou cestou: nelze měnit obsah za jiný fragment
- pozor na šírku kontejnerů:
Složku layout-large lze přejmenovat na swXXXdp např. sw600dp a pak si zařízení bere automaticky resource z této složky, pokud nejmenší rozměr obrazovky je roven, či větší 600dp.
To lze využít k oklamání zařízení při testování. Pokud máte jen malý telefon a chcete na něm zkoušet dva panely, tak složku přejmenujte, po dobu testování, např. na sw300dp a pak i malé zařízení zobrazí oba panely. Po ukončení testování je třeba zase složku přejmenovat na původní nejmenší přípustnou šířku zařízení (w600dp), nebo nejmenší rozměr jedné ze stran obrazovky (sw600dp).
V 2. dílu jsme rozebrali MainActivity.java
Pozor na implementaci správné třídy, pokud si vytvoříte novou třídu se seznamem položek,
je třeba přejemnova HeadlinesFragment na NovyNazevTridyKdeMateListView
implements HeadlinesFragment.OnHeadlineSelectedListener
na
implements NovyNazevTridyKdeMateListView.OnHeadlineSelectedListener
V 3. dílu jsme se zabývali HeadlinesFragment.java
V 4. dílu jsme se podívali na ArticleFragment.java
Fragment používa onCreateView() místo onCreate()
V 5. dílu jsme probrali uložiště řetězců Ipsum.java
Ipsum je veřejná třída, která obsahuje
dvě pole řetězců - stringů.
Pole Headlines slouží jako uložiště pro názvy, které
budou načteny do ListView - seznamu v HeadlinesFragment.java
Pole Articles je v našem případě zásobárnou článků, které
budou načteny dle pozice položky ListView předané z HeadlinesFragment
zoětbě do MainActivity a
odtud do ArticleFragment.java, jako parametr metody
articleFrag.updateArticleView(position);
nebo jako argument Bundle
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
Stringy - ukládat do souboru java je ošemetné (problémy s kódováním, vyhledávání výrazů atd.)
U většího množství článků pak nepřehledné.
Navíc, uživatel nemůže tento text editovat.
K ukládaní většího množství dat, k jejich vyhledávání
a editaci je lépe používat databáze.
Dil 6. shrnutí
V 1. dílu jsme se něco dozvěděli od XML souborech a typu procesoru pro správný běh Android Studia a emulátoru různých typů zařizení s Androidem.
- FrameLayout: můžeme měnit obsah kontejneru
- fragment s plnou cestou: nelze měnit obsah za jiný fragment
- pozor na šírku kontejnerů:
android:layout_width="0dp" - musí být 0dp, jinak se např. některý panel nezobrazí, nebo neuvídíte vůbec nic.
android:layout_weight="1" u prvního panelu fragmentu
android:layout_weight="2" u panelu druhého fragmentu
Složku layout-large lze přejmenovat na swXXXdp např. sw600dp a pak si zařízení bere automaticky resource z této složky, pokud nejmenší rozměr obrazovky je roven, či větší 600dp.
To lze využít k oklamání zařízení při testování. Pokud máte jen malý telefon a chcete na něm zkoušet dva panely, tak složku přejmenujte, po dobu testování, např. na sw300dp a pak i malé zařízení zobrazí oba panely. Po ukončení testování je třeba zase složku přejmenovat na původní nejmenší přípustnou šířku zařízení (w600dp), nebo nejmenší rozměr jedné ze stran obrazovky (sw600dp).
V 2. dílu jsme rozebrali MainActivity.java
Pozor na implementaci správné třídy, pokud si vytvoříte novou třídu se seznamem položek,
je třeba přejemnova HeadlinesFragment na NovyNazevTridyKdeMateListView
implements HeadlinesFragment.OnHeadlineSelectedListener
na
implements NovyNazevTridyKdeMateListView.OnHeadlineSelectedListener
Fragmenty lze měnit ve FrameLayout kontejneru
// MALÉ OBRAZOVKY
// jen JEDEN-PANEL se zobrazuje - vybrán soubor news_articles.xml v layout složce
// musíme vyměnit fragemnty !!!!
// Vytvoříme fragment a doplníme argumenty - hodnoty, poslané např. z HeadlinesFragment.java
// jedná se nám především o pozici položky, na kterou bylo kliknuto v ListView
// tato pozice bude určující pro výběr obsahu pro ArticleFragment
ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Zde vyměníme původní fragment HeadlinesFragment novým fragmentem s obsahem článku atd.
// Můžeme vyměnit fragment za jiný, protože id fragment_container v layout/news_articles.xml je tagu FrameLayout
transaction.replace(R.id.fragment_container, newFragment);
// addToBackStack umožní uživateli vrátit se zpět na seznam položek v HeadlinesFragment.java
transaction.addToBackStack(null);
// celou transakci předáme ke schválení :)
transaction.commit();
V 3. dílu jsme se zabývali HeadlinesFragment.java
// zajistí zpětné odesílání zprav - zde zachytí kliknutí uživatele na položku
// v ListView - seznamu položek
OnHeadlineSelectedListener mCallback;
// pro odposlouchávání zpráv v ListView a odesílání do MainActivity.java
public interface OnHeadlineSelectedListener {
/**
funkce je volána onArticleSelected z HeadlinesFragment když uživatel
klikne na item v ListView - položku seznamu -
Tělo funkce je v MainActivity!!! Tam proběhnou potřebné úkony.
Například výměna fragmentů atd. */
public void onArticleSelected(int position);
}
/........
// novější verze ListView má více možností
int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
android.R.layout.simple_list_item_activated_1 : android.R.layout.simple_list_item_1;
/........
// podbarvení vybrané položky v ListView zlepší přehlednost
// u dvou panelového zobrazeni
/** kliknuto na položku ListView */
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// long id se bude hodit například při obsluze sql.databází
// Upozorní - předá zprávu MainActivity.java, že uživatel
// klikl na položku a odešle i pozici v seznamu
mCallback.onArticleSelected(position);
// getListView().setItemChecked(position, true);
// má zajistit podbarvení
// - zvýraznění vybrané položky,
// ale mi to nefungovalo, tak jsem ještě znovu přidal,
// které je už v onStart() a už to funguje jak má
// Možná nějaká záludnost v mém telefonu :(
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
getListView().setItemChecked(position, true);
}
@Override
public void onStart() {
super.onStart();
// Pokud se bude zobrazovat dual-panel
// (pro tablety, větší obrazovky)
// například je dobré
// když bude zvýrazněna vybraná položka setChoiceMode(ListView.CHOICE_MODE_SINGLE);
// Toto provádíme v onStart(), kdy máme přístup k listview
if (getFragmentManager().findFragmentById(R.id.article_fragment) != null) {
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
}
V 4. dílu jsme se podívali na ArticleFragment.java
Fragment používa onCreateView() místo onCreate()
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Když je activity znovu vytvořena (např. při rotaci zařízení),
// obnoví, v našem případě, text článku, jehož pozice
// byla uložena pomocí
// public void onSaveInstanceState(Bundle outState) viz níže
// důležité zejména pro dual-panel (dva panely vedle sebe)
if (savedInstanceState != null) {
mCurrentPosition = savedInstanceState.getInt(ARG_POSITION);
}
// umístíme, aktivujeme příslušný layout
// zde je zajímavé, že layout můžete měnit.
// Např. při kliknutí na pložku 1 v HeadlinesFragment
// zde můžete ochytit pozici a dle toho zvolit
// příslušný layout, který chcete zobrazit ve fragmentu
// ALE pak si musíte pohlídat ID prvků, které bude ten JINÝ
// layout obsahovat
return inflater.inflate(R.layout.article_view, container, false);
}
// na rozdíl od Activity se ve Fragment používá k
// získání id ne jen findViewById()
// ALE getActivity().findViewById()
TextView article = (TextView) getActivity().findViewById(R.id.article);
@Override
public void onStart() {
super.onStart();
// Při startu fragmentu, zkontrolujte, zda existují nějaké argumenty
// předané do fragmentu.
// OnStart() je právě to správné místo, kde to udělat,
// protože layout s jednotlivými elementy byl již
// naloděn - aktivován, a můžeme bezpečně použít metody,
// které potřebují, aby jednotlivá ID elementů layoutu byla již
// aktivní, použitelná a nevracela NULL, což by mělo za následek
// pád aplikace
Bundle args = getArguments();
if (args != null) {
// vypsaní obsahu článku pomocí předaného argumentu (pozice) z HeadlinesFragment.java
updateArticleView(args.getInt(ARG_POSITION));
} else if (mCurrentPosition != -1) {
// vypsání článku dle pozice uložené např. při rotaci zařízení
// mCurrentPosition je definována (odchycena) v onCreateView
updateArticleView(mCurrentPosition);
}
}
V 5. dílu jsme probrali uložiště řetězců Ipsum.java
Ipsum je veřejná třída, která obsahuje
dvě pole řetězců - stringů.
Pole Headlines slouží jako uložiště pro názvy, které
budou načteny do ListView - seznamu v HeadlinesFragment.java
Pole Articles je v našem případě zásobárnou článků, které
budou načteny dle pozice položky ListView předané z HeadlinesFragment
zoětbě do MainActivity a
odtud do ArticleFragment.java, jako parametr metody
articleFrag.updateArticleView(position);
nebo jako argument Bundle
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
Stringy - ukládat do souboru java je ošemetné (problémy s kódováním, vyhledávání výrazů atd.)
U většího množství článků pak nepřehledné.
Navíc, uživatel nemůže tento text editovat.
K ukládaní většího množství dat, k jejich vyhledávání
a editaci je lépe používat databáze.
How set JAVA path to Environment Variables on Windows (7)
Select Start menu > Computer > System Properties > Advanced System Settings(properties).
Then open Advanced tab > Environment Variables and add a new system variable JAVA_HOME that points to your JDK folder, for example
Select Start menu > Computer > System Properties > Advanced System Settings(properties).
Then open Advanced tab > Environment Variables and add a new system variable JAVA_HOME that points to your JDK folder, for example
C:\Program Files\Java\jdk1.8.0_05
Editace: 2011-10-04 08:57:45
Počet článků v kategorii: 396
Url:do-while-cycle-java-basic-example