1. 程式人生 > >Activity向Fragment中傳值

Activity向Fragment中傳值

activity向fragment中傳值   
1。要傳的值  放到Bundle物件裡

2。通過建立傳遞封Fragment 將bundle物件 通過 setArguments()傳遞到fragment

3.Fragment中 通過getArguments() 得到 bundle物件  就能得到裡面的值

程式碼:

MainActivity:

package com.qianfeng.activitytofragment;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

@SuppressLint("NewApi") 
public class MainActivity extends Activity {

	private EditText et1;
	private FragmentManager manager;
	private FragmentTransaction transaction;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        et1 = (EditText) findViewById(R.id.et1);
        
        manager = getFragmentManager();
        transaction = manager.beginTransaction();
        
        transaction.add(R.id.contents, new Fragment1());
        transaction.commit();
        
    }
    
    //點選按鈕時  進行傳值
    public void onclickBtn(View v){
    	switch (v.getId()) {
		case R.id.button1:
			Fragment1 fragment1 = new Fragment1();
			Bundle bundle = new Bundle();
			String strValue = et1.getText().toString().trim();
			bundle.putString("str", strValue);
			fragment1.setArguments(bundle);
			//如果transaction  commit()過  那麼我們要重新得到transaction
			transaction = manager.beginTransaction();
			transaction.replace(R.id.contents, fragment1);
			transaction.commit();
			break;

		default:
			break;
		}
    }
    
    
    
}












Fragment :
package com.qianfeng.activitytofragment;

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

@SuppressLint("NewApi") 
public class Fragment1 extends  Fragment{
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View view = inflater.inflate(R.layout.fragment_layout1, container, false);
		TextView textView1 = (TextView) view.findViewById(R.id.textView1);
		Bundle bundle = getArguments();//從activity傳過來的Bundle
		if(bundle!=null){
			textView1.setText(bundle.getString("str"));
		}
		
		return view;
	}
}


相關推薦

ActivityFragment

activity向fragment中傳值    1。要傳的值  放到Bundle物件裡 2。通過建立傳遞封Fragment 將bundle物件 通過 setArguments()傳遞到fragment

SSH通過ajaxaction以及ajax非同步重新整理頁面

js程式碼: function send(aid,key,account,pswd){ var status = $("input[id='"+account+"']").val(); $.ajax({ type:"post", url:"order_sendAc

ActivityFragment傳遞引數

Fragment 與 Activity之間傳遞資料有兩種方法,一種是使用setArgument,一種是使用介面回撥。下面先學習第一種方法。 (1)使用setArgument方法: 為了便於理解,我在這裡打個比喻:假如Activity是皇帝,它設立了三個部門(如三省六部),分

MainActivtiyMain2Activty

http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=vedio MainActivity中 public class MainActivity ex

angular2元件的問題

今天在看angular2的專案ng2-admin時, 發現了其中向元件傳值的一個問題:ba-card是一個元件, 其中有一個輸入屬性為: @Input cardTitle: string 而在以往的情況在其他元件中使用子元件時向其中的輸入屬性傳值使用的

當Thymeleaf遇到js的操作

dex data 點擊 func 關於 ima 當前 checkbox query 在使用Thymeleaf的時候。關於一些點擊操作非常頭疼。往往需要向JS裏面傳遞各種東西。 然而,在用Thymeleaf的時候。js操作需要拼接語句。但是又不好拼接。 關於一些操作,一般

Adapter,Fragment所屬的activity

activit .sh use 點擊 rri hold pan col avatar 1、在adapter或fragment中定義接口   如:   public interface LongClickListener {       void getClickNam

android 回撥 activityviewpagerfragment

該頁面包含2個fragment,在2個fragment中獲取伺服器資料 在activity中點選控制元件,dialog中選擇後,並把值傳遞給Fragment activity往fragment傳值 TanlentStoreActivity.java public Str

ActivityFragment,Bundle

首先在Actviity: public class BusinessMessageActivity extends TitleFragmentActivity { private List<Fragment> fragments;   if (!ListUtil

ViewPagerFragmentActivity直間的

程式碼拿走,程式碼拿走,首先因為我的需求頁面都差不多,類似於頭條的那種,所以直接公用了一個fragment佈局,當然你也可以建立多個,沒有影響,主要實現的就行Fragment和Activity的傳值處理 首先建立一個Fragment,在這裡面我是定義了一個公共的靜態方法,g

ActivityFragment

這裡只介紹在建立Fragment物件的時候,怎麼給Fragment傳遞值。因為最近比較忙,過一陣會發表具體介紹Fragment的使用文章 在原來看書學習的時候,書中介紹到很多傳值得方法,但推薦使用Bundle物件傳遞 讓Fragment顯示有兩種方式,但是&

Vue父元件子元件

Vue中父元件向子元件傳值 相關Html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>

React---"props" 及 父元件如何子元件(元件通訊-父子)

以下關於React的props屬性的內容介紹都是我個人理解: 在react當中,我們常說的單向資料流值的說法,其實說的就是props屬性,最常見的props用法就是元件之間的通訊---父元件向子元件傳值。 並且,props本身是不可逆的,具有隻讀性,也就是說它不能修改自己本身,傳

子元件父元件(事件發生在子元件)和事件

專案中一個功能 可能在很多地方都有出現 那麼此時我們肯定是要抽成一個元件, 如果此功能中需要傳值呢 我覺得子元件向父元件傳值, 父元件呼叫子元件裡面的事件, 父元件向子元件傳值云云…. 前兩者真的是需要仔細點琢磨 專案有個需求: 需要對編號:中的值進行純數字驗證並且進行搜尋,

用jsinput框麻煩

花了將近兩個小時的時間,向input框中賦值倉庫的id,但是一直顯示id為空,後來發現是因為 點選的是這個id的框,that是這個inventoryName的對話方塊, 而我想在第一個InventoryId的對話方塊中賦值,所以一直賦不進去,一開始的賦值語句 下面這兩句

vue-cli工程 元件註冊 ,父元件子元件

** 首先我們準備一個父元件模板 ------------- ** <template>   <div id="app">     <!-- 使用子元件 -->     <!-- 向子元件傳值 需

Fragmentdialog傳遞集合(ActivityFragmentFragmentActivity類似)

先定義一個集合,也可以用類物件 List<String> strSize = new ArrayList<>(); 然後在將要傳參的Fragment介面通過Bundle傳遞引數 String strResult = jsonObject.ge

SSMjsp後臺Controller中文亂碼的奇葩解決!!!

場景 進行簡單的SSM整合時,jsp提交使用者名稱到後臺Controller時,插入資料時顯示中文亂碼。 然後,log4j配置輸出sql語句,看到sql語句執行插入時,值就已經是亂碼了。 關於log4j配置輸出sql語句,參照: https://blog.csdn.net

react 父元件子元件簡單例子

該例子選用的 元件為ant design 子元件 通過 this.props.handleData()的方法向父元件傳值 父元件 在父元件中定義相同的handleData()方法獲取子元件傳過來的值 引數a即為子元件傳給父元件的值。

vue父子元件之間的通訊(父元件子元件

一、vuex作為狀態管理,用起來還是蠻方便的,但是最近某個專案遇到個情況,有東西和vuex衝突了,很多傳值的地方只能通過元件之間的通訊來解決。下面簡單記錄下,父與子,子與父之間的一些傳值方法。 二、父元件向子元件傳值 <template> <div&