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.

2. Fragments Tutorial MainActivity - Czech language


AD MOB

Díl 2.
V prvním dile jsme se něco dozvěděli od XML souborech


a taky jaké označení procesoru pro rok 2016 - Intel® VT-x, Intel® EM64T - musí mít PC pro programování v Android Studiu, tedy hlavně pro spuštění emulátoru - virtuálního telefonu, tabletu atd. jinak nebudete moci testovat aplikace na nejnovějších zařízeních, které tento emulátor umí napodobit.
Dole na stránce odkazu je uvedena minimální konfigurace PC, ale protože Android je již plnokrevný OS, který se neustále rozrůstá, tak tyto hodnoty jsou prakticky nedostatečné a je třeba osadit PC nejnovějšími komponentami.



Používáme příklad i zip porojekt z https://developer.android.com/training/basics/fragments/creating.html

V tomto díle si rozebereme záludnosti v souboru MainActivity.java.

// název balíčku
package com.example.android.fragments;

import android.os.Bundle;
// knihovny nutné pro spuštění na starších zařízeních s verzí Androidu API 4
// API verze a příslušné číslo verze Androidu jsou zde 
// https://cs.wikipedia.org/wiki/Historie_verz%C3%AD_Android
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;

// HeadlinesFragment je třída se seznamem položek, která díky
// OnHeadlineSelectedListener bude vracet události kliknutí na položku
// Pokud při pokusech přídáme jiný soubor se seznamem, je nutno změnit i název HeadlinesFragment 
// na nový název, jinak nic neodchytíme!!!!
public class MainActivity extends FragmentActivity 
        implements HeadlinesFragment.OnHeadlineSelectedListener {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
		// tady se rozhoduje zda si vezme XML pro  malé obrazovky, jen s jedním panelem, nebo 
        // velké se dvěma panely
		// Rozhoduje si o tom systém sám, ale můžeme to ovlivnit a pdstrčit mu 
		// i dvoupanel pro testování - viz předchozí díl //android.okhelp.cz/1-fragments-tutorial-xml-czech-language/
        setContentView(R.layout.news_articles);
		//// VELKE OBRAZOVKY - layout-large - dual panel /////////
		// pokud si systém vybere news_articles.xml z layout-large (dual panel)
		// budou fragmenty automaticky naloděny do tagů fragment, kde jsou 
		// uvedeny absolutní cesty fragmentů!!!! 
		// např. fragment android:name="com.example.android.fragments.HeadlinesFragment"
		// si nalodí sám fragment s linkami - položkami ListView.
		// Podobně se sám obslouží při nalodění i fragment s obsahem
		// fragment android:name="com.example.android.fragments.ArticleFragment"
		// Tyto tagy fragment, s absolutní cestou k fragmentu, 
                // neumožňují výměnu fragmentu za běhu aplikace!!!!!
		// Dynamickou výměnu fragmenut však umožňují kontejnery tagu FrameLayout

 
		//// MALE OBRAZOVKY - jen jeden fragment //////
		// Zkontrolujeme, který XML byl naloděn, pokud je activováno R.id.fragment_container
		// značí to, že byl vybrán XML ze složky layout, kde je pouze jeden panel a do něj
		// vložíme pouze fragment se seznamem, tedy HeadlinesFragment a pak po vybrání položky 
		// v něm otevřeme ArticleFragment.java s vypsáním obsahu článku atd.
        if (findViewById(R.id.fragment_container) != null) {
		    
			// Pokud obnovujeme seznam položek vrácením se z předchozího stavu - fragmentu
            // pak nepotřebujeme nic dělat a měl bychom opustit tento if, jinak
            // dojde překrývání fragmentů, tedy uvídíme překryv textů a dalších elementů původního
			// fragmentu fragmentem novým proto uděláme podmínku:
            if (savedInstanceState != null) {
                return;
            }

            // vytvoříme instanci HeadlinesFragment s položkami seznamu v ListView
            HeadlinesFragment firstFragment = new HeadlinesFragment();


			// pokud chceme vložit speciální instrukce pro start odebrané z nějakého Intent,
			// odchytíme je zde a vložíme je jako argumenty. Pak je při startu fragmentu
			// možno odchytit v onCreate()
            firstFragment.setArguments(getIntent().getExtras());

			// vložíme fragment do fragment_container FrameLayout-u  
			// který umožňuje výměnu fragmentů
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, firstFragment).commit();
        }
    }

	// uživatel klikl na nějakou položku ze seznamu v HeadlinesFragment!
    public void onArticleSelected(int position) {
       

        // vybereme určitý článek dle pozice položky vybrané v seznamu ListView
		// Provedeme kontrolu jestli je naloděn dual panel, nebo jen jednoduchý
        ArticleFragment articleFrag = (ArticleFragment)
                getSupportFragmentManager().findFragmentById(R.id.article_fragment);
		
        if (articleFrag != null) {
			// VELKÉ OBRAZOVKY
            // protože je aktivní id R.id.article_fragment z news_articles.xml v layout-large složce
			// víme, že aplikace používá dual-panel, dva fragmenty vedle sebe

            
			// zde se volá funkce která je obsažena v třídě v souboru ArticleFragment.java
			// a provede patřičné příkazy, v našem případě se 
                        // vypíše obsah článku z třídy Ipsum.java
			// sloužící jako úložiště textů přiřazených k jednotlivým
                        // pozicím -  položkám seznamu ListView
            articleFrag.updateArticleView(position);

        } else {
			// 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();
        }
    }
}

397LW NO topic_id




AD

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


293

Java Basic Rules | java-basic-rules



// file name MyFirstClass.java

import java.util.*;
import java.lang.Math;
import java.io.*;
import javax.swing.*;

public class MyFirstClass{ // start of program
  public static void main(String[] args) { // basic  function main

// variables and calculation
int a=2;
int b=3;
int c=Integer.parseInt(JOptionPane.showInputDialog(" Put number: ", "1"));
System.out.println("Number is: "+c);
System.out.println(a+" * "+b+" = "+(a*b));
System.out.println("a^3 "+Math.pow(a,b));

//array
int[] array_my=new int[10];
array_my[0]=3;
array_my[1]=5;
System.out.println("Number of elements "+array_my.length+" 1 + 2 element of array "+(array_my[0]+array_my[1]));

//strings
String txt="Quick red fox";
String txt2=JOptionPane.showInputDialog("Write text: ", "word");
System.out.println("Text is: "+txt2);
String[] count_of_word=txt.split(" ");
System.out.println("Length: "+txt.length()+" Count of words "+count_of_word.length);
System.out.println(txt +" -> "+txt.replace("red","brown"));
System.out.println("First 5 chars of string is: "+ txt.substring(0,5));

//for a if
for(int i=0; i<10;i++){
	if(i==3)System.out.println("i equal "+i);
	}

// file
try {
  File soubor=new File("some_file.txt");
  if(!soubor.exists()){
	System.out.println("File dont exist");
  }
  else { // utf-8 encoding
    BufferedReader in1 = new BufferedReader(new InputStreamReader(new FileInputStream(soubor),"UTF-8"));
    BufferedWriter out1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("zapis.txt"),"UTF-8"));
    String str;
      while ((str = in1.readLine())!=null){
        System.out.println(str);
        out1.write(str+"

"); } in1.close(); out1.close(); } } catch(IOException e){System.out.println("Error " + e);} // dir File pathName = new File("some_dir"); String[] fileNames = pathName.list(); if(pathName.exists()) System.out.println("Name of first file in \"some_dir\": "+fileNames[0]); else System.out.println("dir not exist"); //function int nResult = calculateMyFc(3,5); System.out.println("Result of function: "+nResult); } // end of function main // new function , you can add to end MyFc = my function public static int calculateMyFc(int a, int b){ return (a+b); } } // end of class of program
133

Draw Rect Android basic example | draw-rect-android-basic-example


drawRect(), Paint, setStroke(), setStyle(), Canvas example source code.

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(new SampleView(this));
	}

	private static class SampleView extends View {

		// CONSTRUCTOR
		public SampleView(Context context) {
			super(context);
			setFocusable(true);

		}

		@Override
		protected void onDraw(Canvas canvas) {

			canvas.drawColor(Color.CYAN);
			Paint p = new Paint();
			// smooths
			p.setAntiAlias(true);
			p.setColor(Color.RED);
			p.setStyle(Paint.Style.STROKE); 
			p.setStrokeWidth(4.5f);
			// opacity
			//p.setAlpha(0x80); //
//drawRect (float left, float top, float right, float bottom, Paint paint) 
			canvas.drawRect(10, 10, 30, 30, p);
		}

	}
}
135

Draw Arc Android basic example | draw-arc-android-basic-example


drawArc(), Canvas, Paint, setStyle()

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(new SampleView(this));
	}

	private static class SampleView extends View {

		// CONSTRUCTOR
		public SampleView(Context context) {
			super(context);
			setFocusable(true);

		}

		@Override
		protected void onDraw(Canvas canvas) {

			canvas.drawColor(Color.CYAN);
			Paint p = new Paint();
			// smooths
			p.setAntiAlias(true);
			p.setColor(Color.RED);
			p.setStyle(Paint.Style.STROKE); 
			p.setStrokeWidth(5);
			// opacity
			//p.setAlpha(0x80); //
 
			RectF rectF = new RectF(50, 20, 100, 80);
			canvas.drawOval(rectF, p);
			p.setColor(Color.BLACK);
			canvas.drawArc (rectF, 90, 45, true, p);
		}

	}
}

16

float in Java example code | float-in-java-example-code


Android development
Java float is 32 bit single precision type and used when fractional precision calculation is required.

Java float je 32 bitů veliké číslo sloužící především pro přesný výsledek za desetinnou tečkou například při dělení čísel. Pro větší přesnost použíijte 64 bitový typ Double.


		// declaration and assignment of value  type float
		float x = 18.41785f;
		//print formated  value
		System.out.printf("The value of x is %.3f%n", x); // 18.418
                
                // declaring more variables in single statement
                float f1 = 12.4F, f2 = 564.5F, f3 = 14.589F;

		// float range of value
		System.out.println(Float.MIN_VALUE); // 4E-45
		System.out.println(Float.MAX_VALUE); // 4028235E38

		// is NaN  Not-a-Number
		float f = (float) Math.sqrt(-15);
		boolean bNaN = Float.isNaN(f);
		System.out.print(bNaN); // true
		
                // check if a string is a valid number in Java example
                // convert string to float Java example
		String sF = "12.8";
		float fParse = Float.parseFloat(sF);

	       // convert strings to numbers
	      String sFl = "15.48";
	      float fFromString = (Float.valueOf(sFl)).floatValue();

// float to string in Java example code
Float fObj = new Float(68.5);
String str = fObj.toString();
// else 
Float fS = 11.6f;
String sFloat = fS.toString();

              // compare two float variables
	      Float fComp1 = 4.3f;
	      if(fComp1.equals(4.3f))
	  		System.out.print("true");

	    // compares the two specified float values in Java example
	    int i =	Float.compare(11.5f, 11.7f); // -1 first < second
	    // 0 first == second
	    // 1 first > second
	    System.out.print(i);


198

Seznam smartphonu podle ceny | seznam-smartphonu-podle-ceny


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


Editace: 2016-06-28 14:36:04
Počet článků v kategorii: 397
Url:2-fragments-tutorial-mainactivity-czech-language

AD
11 Share
Share
Tweet