導航:首頁 > 操作系統 > androidactivity返回數據

androidactivity返回數據

發布時間:2022-08-08 21:52:37

1. android fragment打開activity activity結束後怎麼回傳數據

第一步:

我們要在父類的FragmentActivity中進行一步操作:

public class MyFragmentActivity extends FragmentActivity{
public FragmentTransaction mFragmentTransaction;
public FragmentManager fragmentManager;
public String curFragmentTag = "";

...
/*在fragment的管理類中,我們要實現這部操作,而他的主要作用是,當D這個activity回傳數據到
這里碎片管理器下面的fragnment中時,往往會經過這個管理器中的onActivityResult的方法。*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/*在這里,我們通過碎片管理器中的Tag,就是每個碎片的名稱,來獲取對應的fragment*/
Fragment f = fragmentManager.findFragmentByTag(curFragmentTag);
/*然後在碎片中調用重寫的onActivityResult方法*/
f.onActivityResult(requestCode, resultCode, data);
}
...
}

第二步:比如,在c碎片中(fragment),我們要進行的操作:

A:對了,這里需要注意下:在實際開發中,往往會出現在子的fragment中,還會去管理下一層的多個碎片的管理,對於這種比較復雜的碎片管理傳值又需怎樣做呢?其實做法還是和上面一樣的

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment f = fragmentManager.findFragmentByTag(curFragmentTag);
f.onActivityResult(requestCode, resultCode, data);
}

B:好的,終於進入主題了,到最終的b(fragment)接收傳過來的數據了。那我就直接上代碼了:

public class b extends Fragment{

***
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode != Activity.RESULT_OK) {
return;
}
break;

default:
break;
}

}
***
}

2. android 第一個activity通過intent啟動第二個activity,並且獲得數據返回到第一個activity,並且更改界面

開始第二個activity的時候,用startActivityForResult來開始,然後在第一個Activity里重寫onActivityResult,就可以接收第二個Activity的數據了,第二個Activity返回給第一個的時候可以用setResult來設定返回的數據。

望採納

3. android,返回上一個activity時,怎麼傳遞數據給上一個activity

最簡單的方法第一個activity自己寫一個方法,第二格返回到第一個的時候調用方法。
最正規的還是樓上說的用第一個activity通過startActivityForResult()啟動第二個activity

4. Android 如何獲取activity返回的數據

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
}

5. 如何將數據從Activity返回到Fragment

1、在實際應用中,我們不僅要向Activity中傳數據,也要從Activity中返回數據。雖然傳遞數據和返回數據類似,也可以採用前面四篇中提到的4種方法,但是一般建議採用Intent對象的方式來返回數據,使用這種方式返回數據,需要使用startActivityForResult方法來顯示Activity;
2、新建Android項目「android_intent_forresult」,打開布局文件「activity_main.xml」,添加「LinearLayout」、「TextView」、「EditView」等標簽,代碼如下:
<LinearLayout xmlns:android=" hemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<EditText
android:id="@+id/one"
android:layout_width="20dp"
android:layout_height="wrap_content" >
</EditText>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" + " >
</TextView>

<EditText
android:id="@+id/two"
android:layout_width="20dp"
android:layout_height="wrap_content" >
</EditText>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" = " >
</TextView>

<EditText
android:id="@+id/result"
android:layout_width="20dp"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>

<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="計算結果" >
</Button>

</LinearLayout>
3、新建布局文件「other.xml」,添加「TextView」、「EditView」、「Button」標簽,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" mas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TextView>

<EditText
android:id="@+id/three"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>

<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="返回結果" >
</Button>

</LinearLayout>

4、新建「OtherActivity.java」文件,並使其繼承「Activity」,添加「onCreate」方法,代碼如下:package com.android.myintent;

import android.app.Activity;
import android.os.Bundle;

public class OtherActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
}
}
5、在「AndroidManifest.xml」清單文件中加入「Activity」,加入代碼:<activity android:name=".OtherActivity" >
</activity>

6、在「Main.java」中添加Button成員和「setOnClickListener」,實現兩個Button的跳轉,點擊第一個Activity後,出現第二個Activity;在此方法內部創建意圖,用「startActivityForResult」啟動意圖,並在Main類里重寫「onActivityResult」;添加「EditText」成員,實現數據的輸入並傳入Intent中。代碼如下:
package com.android.myintent;

import android.R.integer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Main extends Activity {
private Button button;
private final static int REQUESTCODE = 1;// 表示返回的結果碼
private EditText one, two, result; // 數據輸入

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
one = (EditText) this.findViewById(R.id.one);
two = (EditText) this.findViewById(R.id.two);
result = (EditText) this.findViewById(R.id.result);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// 點擊後獲得用戶錄入的值
int a = Integer.parseInt(one.getText().toString());
int b = Integer.parseInt(two.getText().toString());
// 創建意圖
Intent intent = new Intent(Main.this, OtherActivity.class);
// 將值傳入意圖
intent.putExtra("a", a);
intent.putExtra("b", b);
startActivityForResult(intent, REQUESTCODE);// 表示可以返回結果
}
});
}

// 再重寫一個onActivityResult方法,作用是將當前Activity中的數據傳遞到另一個Activity的意圖中後,實現跳轉,再回傳回來。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
7、在「OtherActivity.java」文件中添加Button和TextView成員,獲取意圖中的數據,代碼如下:package com.android.myintent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

public class OtherActivity extends Activity {
private Button button;
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
// 實例化button和textview
button = (Button) this.findViewById(R.id.button2);
textView = (TextView) this.findViewById(R.id.msg);
Intent intent = getIntent(); // 獲取Intent
// 取出Intent中的值
int a = intent.getIntExtra("a", 0);
int b = intent.getIntExtra("b", 0);
textView.setText(a + " + " + b + " = " + " ? ");

}
}

運行一下,看下效果:
點擊「計算結果」,跳轉到第二個Activity:

6. android:.java怎麼返回數據給Activity

Intent intent = new Intent();
intent.setClass(TrainTicketsInquiryActivity.this, ShowSectionActivity.class);
intent.putExtra("entity", trainNumber.getText().toString());
startActivity(intent);

綁定參數並跳轉正解,望採納

7. android中 activity1中啟動了activity2, activity2中啟動了activity3,怎麼把activity3中的值直接返回給

不能,Activity 只能把結果傳遞給調用者。
可以找一些變通的方法,比如全局變數,廣播,注冊回調等

8. 怎樣實現android 返回到上一個Activity並重新執行一次onCreate方法

1、onCreate
方法只在activity一開始創建的時候執行。
2、也就是在該activity銷毀後才能再次執行,假如當前activity上再打開一個activity,並且原來的activity已經銷毀了,再返回原來的activity會重新執行onCreate
3、可以通過activity的生命周期的onStart方法或者是onResume方法對原來界面的數據進行刷新,也可以使用回調方法,或者是handler
+
Message

9. android activity從一個activity調到另一個activity 返回的時候數據刷新怎麼辦

啟動另外一個activity的時候用startActivityResult,別用startActivity

然後在啟動前這個Activity的onActivityResult中寫刷新的代碼

啟動前這個activity的代碼

publicvoidonButtonClick(Viewv){
Intentintent=newIntent(this,TranslateActivity.class);
startActivityForResult(intent,100);
//100是可以自定義的一個數值,只要和onActivityResult中的100對應上就行
}

@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
super.onActivityResult(requestCode,resultCode,data);
if(resultCode==RESULT_OK){
if(requestCode==100){
//刷新的代碼寫在這里
}
}
}

後一個activity關閉時的代碼片段

publicvoidonBtnCloseClick{
Intentintent=newIntent();
intent.putExtra("user","bcoder");

//設置返回結果為RESULT_OK,intent可以傳入一些其他的參數,在onActivityResult中的data中可以獲取到
setResult(RESULT_OK,intent);
}

10. android 剛開始從Activity1(顯示數據)跳轉到了Activity2(插入數據),現在插入完成後想通過返回鍵返回

有多種方式咯:
通常是用Extra來做的
這樣說,比如你要打開一個活動Activity,就得有個意圖intent
這個intent在發起前,你可以調用putExtra(String,Object),第一個參數是key,第二個是value
然後在打開的Activity里,用getIntent()獲得打開它的意圖,然後該意圖getExtra就好了
比如取一個boolean,就是getBooleanExtra("MyBoolean",false);
MyBoolean是key,false是預設默認值。

閱讀全文

與androidactivity返回數據相關的資料

熱點內容
儲存卡被加密怎麼解除 瀏覽:167
地球怎麼壓縮直徑 瀏覽:778
金鏟鏟之戰伺服器爆滿怎麼進 瀏覽:156
同仁堂pdf 瀏覽:935
如何編譯原理課程教材 瀏覽:730
單片機控制顯示器 瀏覽:776
頂好花app下載怎麼找不到 瀏覽:989
手機命令大全 瀏覽:808
怎麼下郵政銀行app 瀏覽:250
不背單詞app單詞怎麼學習 瀏覽:481
程序員日常操作搞笑 瀏覽:382
android檢查是否安裝 瀏覽:375
蘋果手機編輯pdf文件 瀏覽:460
android系統名字 瀏覽:971
安卓手機如何進去有求必應屋 瀏覽:434
指數除法運演算法則底數不同 瀏覽:896
90壓縮干糧09壓縮干糧 瀏覽:516
android線程池框架 瀏覽:481
手機自帶解壓能解壓哪些文件 瀏覽:804
linux安裝hba驅動 瀏覽:119