Android: volání metody v fragmentu – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Android: volání metody v fragmentu – Java – Fórum – Programujte.comAndroid: volání metody v fragmentu – Java – Fórum – Programujte.com

 

libor
~ Anonymní uživatel
91 příspěvků
20. 4. 2014   #1
-
0
-

Jedinou mnou známou možností jak něco změnit něco v fragmentu, je mít v něm metodu, která to vykoná. Už jsem snad prozkoušel všechny možností, abych jí zavolal. Chtěl bych změnit TextView guest_name_id.

MainActivity 

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Init();
		
		//Set default fragment.
		fragmentTransaction = fragmentManager.beginTransaction();	//Start of transaction.
			Fragment defaultFragment=new DefaultFragment();
			fragmentTransaction.add(R.id.content_layout, defaultFragment);	// add fragment to layout.
			defaultFragment=null;
		fragmentTransaction.commit();	//end of transaction.
		
		
		//Listener for NameList (ListView). The listener change fragments on screen.
		NameList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
	        @Override
	        public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
	        	
	        	final String TAG="tag";
	        	
	        	fragmentTransaction = fragmentManager.beginTransaction();	//Start of transaction.
	        		fragmentTransaction.replace(R.id.content_layout, new GuestFragment(), TAG);
	        		fragmentTransaction.addToBackStack(null);	 //add fragment tag (id) for latest editing.  	
				fragmentTransaction.commit(); //end of transaction.
					
				GuestFragment gf= (GuestFragment)getFragmentManager().findFragmentByTag(TAG);

				gf.setName("SDsd");
	        	
	        
	
	        	
	        }
	    });

 fragment class

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;

public class GuestFragment extends Fragment {
	
	private TextView nameTextView;
	private ListView orderListView;
	

	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
		View view=inflater.inflate(R.layout.guest, container, false);	//create fragment from XML file
				
		nameTextView=(TextView) view.findViewById(R.id.guest_name_id);
		return view;
	}
	
	public void setName(String name){
		nameTextView.setText(name);
	}
}

 

Nahlásit jako SPAM
IP: 194.12.42.–
libor
~ Anonymní uživatel
91 příspěvků
20. 4. 2014   #2
-
0
-

Edit: Error, který jsem objevil je, že  "gf" je null.

Nahlásit jako SPAM
IP: 194.12.42.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý