导航:首页 > 操作系统 > 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返回数据相关的资料

热点内容
复利计算法律保护 浏览:736
代号f2服务器连接失败怎么搞 浏览:956
旋律云我的世界服务器靠谱吗 浏览:63
pdf降低大小 浏览:230
魔兽世界中文如何外服服务器 浏览:924
kindle转pdf格式 浏览:60
单片机自动控制 浏览:673
需要很多文件夹怎么快速的新建啊 浏览:67
算法申请着作权 浏览:213
以前手机号换了要怎么登录农行app 浏览:192
线切割编程系统怎么绘画 浏览:234
如何搭建云服务器异地容灾 浏览:923
黄金拐点指标源码 浏览:92
算法导论第九章 浏览:277
鸽子为什么生成服务器没反应 浏览:491
freebsdnginxphp 浏览:216
噪声消除算法 浏览:608
vue类似电脑文件夹展示 浏览:112
后备服务器有什么功效 浏览:269
连不上服务器怎么连 浏览:601