3,426 views

ArrayList Sublist Join Compare Loop Synchronize HashMap Sort Tree

Link to tutorial

ArrayList Sublist of ArrayList Join two ArrayList Compare ArrayList Initialize ArrayList Loop ArrayList Sort ArrayList Array to ArrayList ArrayList to Array Synchronize ArrayList Serialize ArrayList LinkedList Loop LinkedList Vector ArrayList vs Vector ArrayList vs LinkedList HashMap Loop HashMap Synchronize HashMap Sort HashMap Serialize HashMap ArrayList vs HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet ArrayList Methods

Posted in Android Examples Code | Tagged , , , , | Comments Off on ArrayList Sublist Join Compare Loop Synchronize HashMap Sort Tree
3,500 views

EditText hint not show

Try this solution – into xml file add row to EditText tag:

android:textColorHint="@color/grey"
Posted in Android Examples Code, Bugs, warnings, errors | Tagged , , | Comments Off on EditText hint not show
3,730 views

Convert Activity to Fragment Step by Step

public class Main extends Activity {
 
private TextView mTextView;
private Activity mAct;
private Intent mIntent;
 
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main_layout);
  mTextView = findViewById(R.id.mTextView);
  mAct = getActivity();
  mIntent = getIntent();
 }
 
}

to:

public class Main extends Fragment{
 
 private TextView mTextView;
 private FragmentActivity mFrgAct;
 private Intent mIntent;
 private LinearLayout mLinearLayout;
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
          View root = inflater.inflate(R.layout.fragment_main, null);
        return root;
    }
 
 public void onViewCreated(View view, Bundle savedInstanceState) {
          // you can add listener of elements here
          /*Button mButton = (Button) view.findViewById(R.id.button);
            mButton.setOnClickListener(this); */
          mTextView = view.findViewById(R.id.mTextView);
          mLinearLayout = (LinearLayout)view;
 }
 public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
          mFrgAct = getActivity();
          mIntent = mFrgAct.getIntent(); //  Intent intent = new Intent(getActivity().getIntent());
 }
 
}
Posted in Android Examples Code, Fragments Tutorial | Tagged | Comments Off on Convert Activity to Fragment Step by Step
3,447 views

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

Posted in Android Examples Code, Android Studio, Fragments Tutorial | Tagged , | Comments Off on Android Fragment Examples
3,429 views

Android Studio Browse Files Data Device Emulator

1.) Open DDMS via Menu Tools > Android > Android Device Monitor
2.) Select Device
3.) In DDMS click Menu Window > Show View > File Exlporer
4.) Device > Storage folder
5.) Emulator > data > data folder

Posted in Android Studio, Eclipse | Comments Off on Android Studio Browse Files Data Device Emulator
3,202 views

Android Software Downloading Possible Only From Play.Google.Com

Software is only available on:


Android Software Downloading Possible Only From Play.Google.Com

Posted in Android Software Download | Tagged | Comments Off on Android Software Downloading Possible Only From Play.Google.Com
4,667 views

All com.android.support libraries must use the exact same version specification

For example:
If You using
compileSdkVersion 25
buildToolsVersion "25.0.0"

You have to using latest version of support libraries with number 25.
Also check the library project!

 
apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
 
    defaultConfig {
        applicationId "cz.okhelp.prislovi_cz_test"
        minSdkVersion 13
        targetSdkVersion 25
    }
 
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
 
        }
    }
}
 
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    compile project(':library_studio')
 
    /*  ERROR message: You have to update 
     compile 'com.android.support:appcompat-v7:23.4.0'
     compile 'com.android.support:design:23.4.0'
    */
 
    compile 'com.android.support:support-v4:25.1.0'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
}

Update in module build.gradle file
or
select from menu File -> Project Structure and set up correct libraries.

Posted in Android Studio, Bugs, warnings, errors | Tagged , | Comments Off on All com.android.support libraries must use the exact same version specification
2,180 views

InterstitialAd Admob not visible

// on bottom of onCreate add listener
mInterstitialAd .setAdListener(new AdListener(){
     public void onAdLoaded(){
          interstitial.show();
     }
});
 
} // end onCreate
 
 public void displayInterstitial (){
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
    }
Posted in Android Studio, Bugs, warnings, errors | Tagged | Comments Off on InterstitialAd Admob not visible
1,793 views

Android Studio emulator errors warnings issue

– check errors, warnings in build.gradle and other files
– Sync project
– Clean project
– Rebuild project
– restart Android Studio
– restart ADB
– update Tools, libraries, etc.

Speed Up Gradle Build In Android Studio

-a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Unexpected error while executing: am start -n

Try run app again, or open app from emulator.

Admob not visible on emulator:

InterstitialAd
Use listener
in https://firebase.google.com/docs/admob/android/existing-app

// onCreate
mInterstitialAd .setAdListener(new AdListener(){
public void onAdLoaded(){
interstitial.show();
}
});
// ! onCreate

public void displayInterstitial (){
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}

Ads: There was a problem getting an ad response. ErrorCode: 0
Solution:
Update Android with Google APIs. Run emulator Android xx with (Google APIs)
module.gradle
Check:
compile ‘com.google.android.gms:play-services:8.4.0′
Maybe you have to update version of play-services.

Posted in Android Studio, Bugs, warnings, errors | Tagged , | Comments Off on Android Studio emulator errors warnings issue
1,544 views

6. Fragments Tutorial Summary – Czech language

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ů:

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.

Posted in Android Examples Code, Fragments Tutorial | Tagged , , | Comments Off on 6. Fragments Tutorial Summary – Czech language
1,544 views