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.

Layout not found on Android 2.1


AD MOB

If I create own folder layout-w320dp with Eclipse Android 4.4
layout was correctly loaded.
If I trying this application on tablet with Android 2.1 application crashed.


layout-not-loaded-android-2-1

397LW NO topic_id




AD

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


376

4. Fragments Tutorial ArticleFragment.java – Czech language | 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.




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
    }
}
87

Map TreeMap key value pair sort by key, using of iterator Java Android example | map-treemap-key-value-pair-sort-by-key-using-of-iterator-java-android-example


Map TreeMap key value pair, Map sort by key, Iterator for Map Java Android example.

MainClass.java

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
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", "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);
	    	}
	    }
		List sortedByKeys=new ArrayList(map.keySet());
		Collections.sort(sortedByKeys);
		
            // iterate map
	    Set references = map.keySet();
	    Iterator it = references.iterator();
	    while (it.hasNext()) {
	      String key = (String) it.next();
	      String value = map.get(key);
	      System.out.println(key + " = " + value);
	    }
            // or other example how iterate map
	    TreeSet<String> keys = new TreeSet<String>(map.keySet());
	    for (String key : keys) { 
	       String value = map.get(key);
	       System.out.println(key + " = " + value);
	       
	    }		


		
       // check if key exists 	    
//	   if( map.containsKey("two")){
//		System.out.print("two = " + map.get("two"));
//	   }
	}
}
/*
four = vier
one = eine
three = drei
two = zwei
 */
396

ADB restart device every time Android Studio | adb-restart-device-every-time


Android Studio ADB restart mobile device from USB every time if RUN of DEBUG button pressed

Try to close the mobile application on your device completely before starting again from Android Studio.
Close every fragment.
The problem occurs when the application has multiple fragments.

Date: 13.07.2020 - 08:23
161

Append text and ad text to TextView Android example | append-text-and-ad-text-to-textview-android-example



String s = "Some text for appending

"; TextView mTitle = (TextView) findViewById(R.id.title_text); mTitle.setText(R.string.app_name); // insert text from strings.xml mTitle.append(s); // append string like a variable value mTitle.append("My string will appended
"); // append string

You can insert this source code into onCreate in your activity file
382

Convert Activity to Fragment Step by Step | 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());
 }

}





Editace: 2013-12-16 13:55:27
Počet článků v kategorii: 397
Url:layout-not-found-on-android-2-1

AD
11 Share
Share
Tweet