4. Fragments Tutorial ArticleFragment.java – Czech language
Dil 4. ArticleFragment.java
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.
V 2. dílu jsme rozebrali MainActivity.java
V 3. dílu jsme se zabývali HeadlinesFragment.java
V tomto dílu se podíváme na ArticleFragment.java soubor.
Používáme příklad i zip porojekt z https://developer.android.com/training/basics/fragments/creating.html Pozorně si jej nastudujte.
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.
V 2. dílu jsme rozebrali MainActivity.java
V 3. dílu jsme se zabývali HeadlinesFragment.java
V tomto dílu se podíváme na ArticleFragment.java soubor.
Používáme příklad i zip porojekt z https://developer.android.com/training/basics/fragments/creating.html Pozorně si jej nastudujte.
package com.example.android.fragments;
// knihovna pro nižší verze Androidu
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
// extends Fragment - už nebude obsahovat funkci onCreate jako v Activity
// ale onCreateView
public class ArticleFragment extends Fragment {
// důležité pro uložení argumentu - argumentů (hodnot)
// pro obnovení předchozího stavu obsahu obrazovky
// např. při rotaci zařízení atd.
final static String ARG_POSITION = "position";
int mCurrentPosition = -1;
TextView article; // uložen do globální proměnné, v originale
// odchycen v updateArticleView() ale tam vracel NULL
@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
// Oproti originalu odchytíme TextView již zde, v originalu to vyhazovalo chybu
View rootView = inflater.inflate(R.layout.vnitrek, container, false);
article = (TextView) rootView.findViewById(R.id.article);
return rootView;
}
@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);
}
}
/**
funkce která vypíše obsah článku do TextView.
Jako parametr int position je pozice položky,
na kterou bylo kliknuto v ListView v HeadlinesFragment.java
*/
public void updateArticleView(int position) {
// na rozdíl od Activity se ve Fragment používá k
// získání id ne jen findViewById()
// ALE getActivity().findViewById()
//Tento kod vracel article == NULL , PROTO bylo nutno odchytit TextView
// v onCreateView()
//TextView article = (TextView) getActivity().findViewById(R.id.article);
// vložení textu článku do TextView z Ipsum.java
// je to pole stringů, kde position je pozice stringu v poli
// static String[] Articles = {"","",""};
if (article != null)
article.setText(Ipsum.Articles[position]);
mCurrentPosition = position;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Uložení pozice článku - elementu, či jiných argumentů důležitých
// pro obnovení stavu v onCreateView() např. při rotaci zařízení
outState.putInt(ARG_POSITION, mCurrentPosition);
// TIP: zde můžeme vždy při rotaci zařízení podstrčit náhodnou pozici
// článku pomocí
// randomNum = minimum + (int)(Math.random() * maximum);
// a vytvořit tak zábavnou hru, například pro náhodné
// vypsání přísloví, či nějakého fyzikálního zákona atd.
// Stačí pak aby uživatel jen pootočil zařízení od 90° a zpět,
// k vypsání nové položky
}
}
396LW NO topic_id
AD
Další témata ....(Topics)
drawPath, canvas.rotate, lineTo basic Android example for your testing.
![]() |
|
![]() |
|
// //www.apache.org/licenses/LICENSE-2.0
// The Android Open Source Project
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SampleView(this));
}
private static class SampleView extends View {
private Paint mPaint = new Paint();
private Path mPath = new Path();
// CONSTRUCTOR
public SampleView(Context context) {
super(context);
setFocusable(true);
// Construct a wedge-shaped path
mPath.moveTo(0, -60);
mPath.lineTo(-20, 80);
mPath.lineTo(0, 60);
mPath.lineTo(20, 80);
mPath.close();
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = mPaint;
canvas.drawColor(Color.WHITE);
paint.setAntiAlias(true);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
R.drawable.flower_blue);
canvas.drawBitmap(bitmapOrg, 10, 10, paint);
int w = canvas.getWidth();
int h = canvas.getHeight();
int cx = w / 2;
int cy = h / 2;
canvas.translate(cx, cy);
// uncomment next line
//canvas.rotate(90.0f);
canvas.drawPath(mPath, mPaint);
}
}
}
If you change the package name, you have to add new package name in:
DictionaryProvider.java
Do not forget change package name in all java class and xml/searchable.xml
In my project I changed like this:
DictionaryProvider.java
public class DictionaryProvider extends ContentProvider {
String TAG = "DictionaryProvider";
// public static String AUTHORITY = "com.example.android.searchabledict.DictionaryProvider";
// change to your new package name
public static String AUTHORITY = "com.myweb.mysubdomen.searchabledict.DictionaryProvider";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/dictionary");
// in AndroidManifest.xml
//change com.example.android to your package e.g. com.myweb.mysubdomen
<!-- Provides search suggestions for words and their definitions. -->
<provider android:name="com.example.android.searchabledict.DictionaryProvider"
android:configChanges="keyboard|keyboardHidden|orientation"
android:authorities="com.example.android.searchabledict.DictionaryProvider" />
<!-- Points to searchable activity so the whole app can invoke search. -->
<meta-data android:name="android.app.default_searchable"
android:configChanges="keyboard|keyboardHidden|orientation"
android:value=".SearchableDictionary" />
// I change like this:
<!-- Provides search suggestions for words and their definitions. -->
<provider android:name=".DictionaryProvider"
android:configChanges="keyboard|keyboardHidden|orientation"
android:authorities="cz.okhelp.android.searchabledict.DictionaryProvider" />
<!-- Points to searchable activity so the whole app can invoke search. -->
<meta-data android:name="android.app.default_searchable"
android:configChanges="keyboard|keyboardHidden|orientation"
android:value=".SearchableDictionary" />
Do not forget change package name in all java class and xml/searchable.xml
In my project I changed like this:
<searchable xmlns:android="//schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:hint="@string/search_hint"
android:searchSettingsDescription="@string/settings_description"
android:searchSuggestAuthority="cz.okhelp.android.searchabledict.DictionaryProvider"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSuggestIntentData="content://cz.okhelp.android.searchabledict.DictionaryProvider/dictionary"
android:searchSuggestSelection=" ?"
android:searchSuggestThreshold="1"
android:includeInGlobalSearch="true"
>
</searchable>
Intent i = new Intent(this, MyNextClass.class);
startActivity(i);
xml example source code with image.

<TableLayout android:layout_width="match_parent" android:id="@+id/idTableInRadioGroup" android:layout_height="wrap_content">
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<RadioGroup android:id="@+id/idRadio_group_1_column"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:orientation="vertical">
<RadioButton android:id="@+id/idRadio_1"
android:text="@string/textLabel_1"/>
<RadioButton android:id="@+id/idRadio_2"
android:text="@string/textLabel_2"/>
<RadioButton android:id="@+id/idRadio_3"
android:text="@string/textLabel_3"/>
</RadioGroup>
<RadioGroup android:id="@+id/idRadio_group_2_column"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:orientation="vertical">
<RadioButton android:id="@+id/idRadio_4"
android:text="@string/textLabel_4"/>
<RadioButton android:id="@+id/idRadio_5"
android:text="@string/textLabel_5"/>
<RadioButton android:id="@+id/idRadio_6"
android:text="@string/textLabel_6"/>
</RadioGroup>
</TableRow>
</TableLayout>

Samsung Galaxy S nejlepší cena od 4 500 KCZ Kč (únor.2012)
Samsung Galaxy S je chytrý telefon s operačním systémem Android.
Samsung Galaxy S je (22.února2012) 5. a 6. nejpoužívanějším chytrým telefonem u programu Sky Map viz tabulka.
Samsung Galaxy S byl představen firmou Samsung v březnu 2010. Je vybaven 1 GHz ARM "Hummingbird - kolibřík" procesorem, 8-16 GB interní flash pamětí, 4-palcovým 480 × 800 pixelů Super AMOLED kapacitním dotykovým displejem, Wi-Fi připojením, 5-megapixelovým fotoaparátem s maximálním rozlišením 2560x1920 a u vybraných modelů předním čelním 0,3 MP fotoaparátem VGA (640x480).
Samsung Galaxy S photo pic image
Zdroj obrázku: wikipedia
Samsung Galaxy S je chytrý telefon s operačním systémem Android.
Samsung Galaxy S je (22.února2012) 5. a 6. nejpoužívanějším chytrým telefonem u programu Sky Map viz tabulka.
Samsung Galaxy S byl představen firmou Samsung v březnu 2010. Je vybaven 1 GHz ARM "Hummingbird - kolibřík" procesorem, 8-16 GB interní flash pamětí, 4-palcovým 480 × 800 pixelů Super AMOLED kapacitním dotykovým displejem, Wi-Fi připojením, 5-megapixelovým fotoaparátem s maximálním rozlišením 2560x1920 a u vybraných modelů předním čelním 0,3 MP fotoaparátem VGA (640x480).
Samsung Galaxy S photo pic image

Zdroj obrázku: wikipedia
Editace: 2016-07-07 11:16:55
Počet článků v kategorii: 396
Url:4-fragments-tutorial-articlefragment-java-czech-language