关于两个activity之间的数据交换,相信一个activity1跳转到另一个activity2的时候,并且加载一些数据,初学者都会的一些操作,可是如果对一个activity1跳转到activity2的进行某一些选择和设置之后,在需要返回一些数据到activity1的时候,有的时候,就觉得比较麻烦和繁琐,需要在activity1中写一些相关的取值和判断的。
今天学习了李刚疯狂讲义,上学习到了activity原来的有自带的返回的结果的方法可以重写并且实现,所有今天的就自己学习写一个Demo算是一个小列子,方便自己以后的深化记忆个使用。
好了,说了那么多,直接上代码和注释咯
首先,两个activity的布局文件就不写了,就是1个按钮而已。activity1的按钮用户跳转到activity2去。activity2的按钮用于返回信息到activity1去
主界面的activity1(各位需要忽略我自己的取得名字哈)
package com.ljz.activityback.test1;
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.Toast;
public class ActivityBackTest1Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.btu1);
button.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(ActivityBackTest1Activity.this,Activity1.class);
//0代表请求妈的编号
startActivityForResult(intent, 0);
}
} );
}
//用户接受activity2返回的结果数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if( requestCode == 0 && resultCode == 0 )
{
Toast.makeText(getApplicationContext(), ""+data.getExtras().getString("ljz"), Toast.LENGTH_SHORT).show();
}
}
}
这个是activity2的代码
package com.ljz.activityback.test1;
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;
public class Activity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
Button button = (Button)findViewById(R.id.btu2);
button.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
//获得启动这个activity的intent
Intent intent = getIntent();
//写入数据
intent.putExtra("ljz", "daziyi");
//设置结果
Activity1.this.setResult(0, intent);
//返回
Activity1.this.finish();
}
} );
}
}