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)


381

Android Fragment Examples | android-fragment-examples


Code look up at the Api Demos

android_fragments arguments attributes - three fragments on screen
android_fragments_arguments

android_fragments_alert_dialog
android_fragments_alert_dialog.png

android_fragments_context_menu
android_fragments_context_menu.png

android_fragments_custom_animation
android_fragments_custom_animation.png

android_fragments_dialog
android_fragments_dialog.png

android_fragments_dialog_or_activity
android_fragments_dialog_or_activity.png

fragment_hide_show
fragment_hide_show.png

fragment_layout
fragment_layout

fragments_list_array
fragments_list_array.png

fragment_menu
fragment_menu.png

android_fragments_get_result_from_fragment and tabs in two rows
android_fragments_get_result_from_fragment.png

android_fragments_recive_result
android_fragments_recive_result.png

android_fragments_stack
android_fragments_stack.png

fragment_tabs
fragment_tabs.png





89

Map TreeMap get key by value Java Android example | map-treemap-get-key-by-value-java-android-example


Get key by value from Map Java Android example


MainClass.java

import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

public class MainClass {
	public static void main(String[] arg) {

		// english;germany dictionary
		String[] arrayOfString = { "one;eine", "two;zwei", "two sets of;zwei"
				, "three;drei", "four;vier" };

		Map<String, String> map = new TreeMap<String, String>();

		for (String s : arrayOfString) {
			String[] array = s.split(";");
			String sKey = "", sValue = "";
			if (array.length > 1) {
				sKey = array[0];
				sValue = array[1];
				map.put(sKey, sValue);
			}
		}

		if (map.containsValue("zwei")) {
			Set<String> references = getKeysByValue(map, "zwei");
			 Iterator<String> it = references.iterator();
			    while (it.hasNext()) {
			      String key = (String) it.next();
			      String value = map.get(key);
			      System.out.println(key + " = " + value);
			    }
		}

	}

	public static <T, E> Set<T> getKeysByValue(Map<T, E> map, E value) {
		Set<T> keys = new HashSet<T>();
		for (Entry<T, E> entry : map.entrySet()) {
			if (entry.getValue().equals(value)) {
				keys.add(entry.getKey());
			}
		}
		return keys;
	}
}
/*
two = zwei
two sets of = zwei
 */

24

Sqlite create database and table with BAT file for Android | sqlite-create-database-and-table-with-bat-file


Sqlite3 create database and table with load.bat file and fill data to table example.


  1. Create folder for your project: my_sqlite_project

  2. Open folder and create file load.bat and paste to load.bat this text and save to project folder:


    sqlite3 my_database.s3db < load_text.sql
    pause



  3. Create load_text.sql file and paste this text and save to project folder:

    CREATE TABLE [android_metadata] (
    [locale] TEXT
    );




    CREATE TABLE [my_table] (
    [_id] int NULL,
    [word] VARCHAR(255) NULL,
    [description] VARCHAR(255) NULL




    .separator ";"
    .import text_file.txt my_table


  4. Create text_file.txt and paste this text and save it as UTF-8:

    1;word1;my first word
    2;word2; my second word



  5. Download sqlite3.exe and put to project folder.

  6. Run BAT file load.bat and read text instruction from console

  7. If database created you can open and edit this with sqlite database explorer

  8. Copy database to Asses Android project folder

  9. If you want using this database in Android application on device, you have to copy this database to folder on device /data/data/com.MyPackage/databases/









196

Samsung S6102 Galaxy Y Duos | samsung-s6102-galaxy-y-duos


Samsung S6102 Galaxy Y Duos umožňuje pracovat se dvěma aktivními SIM kartami a má GPS navigaci. Cena cca 4.500 korun / léto 2012.

Displej
Rozlišení displeje 320 x 240
Velikost displeje 3.14 "
Počet barev 262000
Rozměry 104 mm x 60 mm x 11.5 mm
Fotoaparát 3 Mpix, natačení videosekvencí
Operační system Android 2.3 (Gingerbread)
Procesor 832 MHz
Funkce Dual sim, Změny velikosti písma, Java, Internetový prohlížeč Přehrávání MP3, jack 3,5, Psaní SMS a e-mailů Multimediální zprávy MMS, Dlouhé SMS, Emailový prohlížeč, Kontakty a volání Hlasité handsfree, MP3/WMA/AAC vyzvánění, Skupiny volajících, Baterie
Typ baterie Li-Ion 1300 mAh
Doba hovoru 370 min
Pohotovostní doba 440 hodin
Uživatelská paměť 160 MB
Datové funkce GPS modul, WiFi, Bluetooth, GPRS, EDGE, Hardwarový modem
Aplikace Diktafon, Kalendář, FM rádio, Záznamník hovoru, Hry v telefonu, Kalkulačka, Budík
Mobilní telefony Samsung mají velmi dobrý poměr KVALITA / CENA


samsung s6102 galaxy y duos
100

How evaluate any expression in Eclipse debugger editor Android example | how-evaluate-any-expression-in-eclipse-debugger-editor-android-example


Tutorial by pictures how evaluate a variable in Eclipse debugger window.

1.) Open Debug perspective in Eclipse and to start debugging a Activity.
eclipse-debug-perspective


2.) Open Display window from menu Window->Show view->Display

eclipse dislplay window

3.) Set breakpoint where you need to evaluate a variable.

eclipse-toggle-breakpoint

4.) Debug the Activity to breakpoint.

eclipse-debugger-breakpoint


5.) Into the Display window type code for evaluate your variable and execute code.

eclipse-type-evaluate-code-to-display-window


6.) Check if change of value a variable

eclipse-evaluate-a-variable



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