本篇文章为大家展示了Android应用中怎么实现Activity之间的数据传递,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
MainActivity
public class MainActivity extends Activity
{
private Button mainBtn=null;
private final static int REQUEST_CODE=1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainBtn=(Button)findViewById(R.id.mainBtn);
mainBtn.setOnClickListener(listener);
}
private OnClickListener listener=new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent=new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
intent.putExtra("str", "Intent Demo");
startActivityForResult(intent, REQUEST_CODE);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode==REQUEST_CODE)
{
if (resultCode==SecondActivity.RESULT_CODE)
{
Bundle bundle=data.getExtras();
String str=bundle.getString("back");
Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}
}
}
}
由MainActivity 通过最简单的Intent.putExtra方法,将参数传入,也可以用Bundle传入参数,
Bundle bundle = new Bundle();
bundle.putString("str", "Intent Demo");
intent.putExtras(bundle);
若需要获得返回值,则用startActivityForResult(),并需要知道返回的一个RESULT_CODE(int类型),可以理解为指针,用intent.setClass() 确定传递给那个类(这里包括Activity、Service等)。第二个Activity---本例中的SecondActivity ,用Intent intent=getIntent();Bundle bundle=intent.getExtras();String str=bundle.getString("str");获得前一个Activity传来的参数,这里还需要返回给MainActivity参数,用到了setResult(RESULT_CODE, intent); 这里 要说明的是RESULT_CODE必须与前一个Activity一致,否则就不能正常返回。而第一个MainActivity通过重写onActivityResult()来取得相应的返回值。
若不需要返回,可以直接用startActivity()。
SecondActivity
public class SecondActivity extends Activity
{
public final static int RESULT_CODE=1;
private TextView secondTxt;
private Button secondBtn;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
String str=bundle.getString("str");
secondTxt=(TextView)findViewById(R.id.secondTxt);
secondTxt.setText(str);
secondBtn=(Button)findViewById(R.id.secondBtn);
secondBtn.setOnClickListener(listener);
}
private OnClickListener listener=new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent=new Intent();
intent.putExtra("back", "Back Data");
setResult(RESULT_CODE, intent);
finish();
}
};
}
对于初学者,还得提醒一下,别忘记在AndroidManifest.xml添加SecondActivity类
<activity android:name=".SecondActivity"
android:label="@string/app_name">
</activity>
上述内容就是Android应用中怎么实现Activity之间的数据传递,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。