1. 程式人生 > >activity向另一個activity中的fragment傳值

activity向另一個activity中的fragment傳值

  1. 列表內容

    在學習和專案運用中會用到activity想另一個activity中的fragment傳值,在網上看了很多前輩的帖子,自己總結寫了個傳值方式。舉個例子,在一個商場的app中,主介面中嵌套了4fragment,中有一個是個人中心,點選個人中心的登入按鈕跳到登入介面,在吧登入介面的使用者名稱傳回個人中心,有很多地方都會運用到,當然解決方法也有很多,比如把登入資訊直接存到SharedPreferences中再到fragment中去判斷,也可用startActivityForResult。
    這裡是關於用startActivityForResult來傳值,直接上程式碼

這是主介面,主介面巢狀fragment,程式碼很簡單就是繫結fragment

package com.demo.actyfrafmrntdemo;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    private Onefragment onefragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onefragment=new
Onefragment(); //鏈式程式設計風格 getFragmentManager().beginTransaction().add(R.id.fragment, onefragment).commit(); } }

接下是fragment的相關操作,這裡是一個textview和一個button,button點選跳轉到登入介面,然後把登入介面的使用者名稱傳到textview中,佈局檔案就不貼了

package com.demo.actyfrafmrntdemo;

import android.app.Fragment;
import android.content.Intent;
import
android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class Onefragment extends Fragment { private View view; private Button mButton; private TextView mtTextView; @Override @Nullable public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub return view = inflater.inflate(R.layout.fragment_layout, null); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); mButton = (Button) view.findViewById(R.id.btn); mtTextView = (TextView) view.findViewById(R.id.text_view); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivityForResult(new Intent(getActivity(), LogingActy.class), 1); } }); } /** * 此方法用來跳轉的activity要傳回的資料,以及接受到傳回資料的要做的業務 * 這裡因為只有一個activity返回資料,所以這裡就只有一個resultCode,就直接接收返回值處理 */ @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); Bundle bundle = data.getExtras(); String namString = bundle.getString("name"); mtTextView.setText(namString); } }

接下來就是要傳回資料的activity了

package com.demo.actyfrafmrntdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class LogingActy extends Activity{
    private EditText nameView;
    private EditText pwdTextView;
    private Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loging_activity);
        nameView=(EditText)findViewById(R.id.name);
        pwdTextView=(EditText)findViewById(R.id.pwd);
        mButton=(Button)findViewById(R.id.brn_login);
        mButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String nameString=nameView.getText().toString();
                String pwd=pwdTextView.getText().toString();
                Intent intent=new Intent();
                Bundle bundle=new Bundle();
                bundle.putString("name", nameString);
                bundle.putString("pwd", pwd);
                intent.putExtras(bundle);
                // 1是返回的requestCode 
                LogingActy.this.setResult(1,intent);
                //這裡要直接幹掉
                finish();



            }
        });
    }

}

關於startActivityForResult傳值就到這裡了。Android新手,有不對的錯誤的地請指教

相關推薦

activity一個activityfragment

列表內容 在學習和專案運用中會用到activity想另一個activity中的fragment傳值,在網上看了很多前輩的帖子,自己總結寫了個傳值方式。舉個例子,在一個商場的app中,主介面中嵌套了4fragment,中有一個是個人中心,點選個人中心的登入按鈕

Android Fragment一個Activity

scree nac main data extends lis ride bin ast 1.Fragment內: Intent intent=new Intent(getActivity(),ShowDataActivity.class); //參數1:Fragme

初學android studio——如何通過編輯框(EditText)一個activity的文字框(TextView)傳送資訊

1.首先建立好兩個activity,取名分別為activity_main和 activity_display_messagePS:我這裡都是以basic activity和線性佈局(LinearLayout)為例2.在在第一個activity的佈局檔案(content_mai

Android 一個Activity呼叫一個Activity的公有方法

問題描述: Activity A A中有一個TextView控制元件  ,一個Button控制元件,點選Button控制元件啟用Activity  B,還有一個公有方法c ,c 傳入一個String引數s 將s 顯示到TextView上 Activity B 一個EditV

Android 從一個activity一個activity(有傳送資料)

Intent activity_change= new Intent(Activityanother.this, MainActivity.class); //切換 Activityanot

Activity切換(怎麼從一個Activity一個Activity

  本例項程式演示的是從一個Activity切換到另外的一個Activity:) 程式介面 Android開發例項——Activity切換(第一個Activity) Android開發例項——Activity切換(第二個Activity)

android 回撥 activityviewpagerfragment

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

android fragment跳轉一個activity出錯

最近遇到了一個麻煩,就是我用fragment為模板寫了一個小的程式,其中包括在fragment中點選跳轉到另一個activity中,但是當我建立一個activity時,程式就炸了。 這個錯誤一直困擾了我幾天,各種百度都沒有找出原因,最後我從最基礎的fragment模板開始,建activity測試

Android一個Activty控制一個Activity的函式及變數

在Android中,有時候我們需要在當前的Activity結束掉堆疊中其他的Activity,比如:Activity A,B,C,D 在堆疊中的順序如下:  A->B->C->D,假如我們現在處於Activity D,我們想在D中呼叫A或B或C的finish()函式,或者

android 使用startActivity()從一個fragment 跳轉一個activity出錯

系統沒有崩潰,run裡也沒有明顯的錯誤,但是event Log裡提示跳轉失敗: 20:14:44 error: cannot connect to daemon 20:14:44 'E:\sdk\platform-tools\adb.exe,start-server' failed --

ActivityFragment,Bundle

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

android開發之在activity控制一個activity的UI更新

第一種方法: 遇到一個問題,需要在一個activity中控制另一個acitivity做一些更新,沒想到傳遞handler的方法,通過以下方式解決。 1.在MyAPP中定義屬性handler package jason.com; import jason.com.MasterAc

android實現從一個activity跳轉到一個activity

<pre name="code" class="java"> </pre><pre class="java" name="code"><span style="font-size:18px;">要實現從1個activity跳到

Android知識點2-Adapter使用Intent跳轉到一個activity

如果成功了,就叫我雷鋒,雷鋒我愛你,Bingsman 分享精神 不多說直接上程式碼 public class MainViewAdapter extends BaseAdapter {

一.建立一個Button監聽器,使Button能開啟一個activity

建立一個button監聽器,並使監聽器能開啟另一個activity並傳值 一.建立一個Button的OnClick監聽器 //這個屬於一個內部類 class MyButtonListener implements OnClickListener{ //

同一程序activity啟動一個activity的流程

在上一篇文章launcher介面點選應用圖示啟動Activity流程分析 中我們分析了在新程序中啟動activity的流程,這裡我們也順便介紹下在同一個程序的activity中啟動另一個activity,這種場景在實際應用中應該更為常見。都是啟動activity

Android  activity跳轉到一個activity的指定fragment頁面

最近在做一個專案用了activity跳轉到fragment,所以就在網上找了很多的列子。 下面先看幾張圖: 首頁、簡介、和設定都是fragment碎片。在mainactivity裡面。而testactivity是一個獨立的activity 現在要做的就是從testactivity跳轉到簡介這個f

Activity關閉一個Activity

1.對於簡單的兩個Activity public class A_activity extends Activity {       public static A_activity _instance = null;          @Override         

Android開發一個Activity關閉一個Activity

比如說:有Activity A、B、C三個Activity ,想要在C操作完成時點選返回鍵的時候關閉 其他Acticity  ,這個時候可能會有人說那不就是  關閉所有的Activity嘛。 其實沒錯,網上一搜一大堆,雖然那些解決方法也不是很複雜,但是我今天要說的這個還是真

Android一個應用程式Activity跳轉到一個Activity

   一個應用程式中的一個Activity想啟動另一個Activity,通常用intent(Context,Class)方法定義intent,這次利用intent_filter的做法來啟動。 程式碼如下: Activity1中的button設定監聽器,跳轉到Activity