您的位置:首页 > 其它

自学安卓复习基础_之七(关于页面B给页面A返回值)

2015-09-19 10:37 281 查看
这个场景应用的地方还是挺多的,比如说拨打电话,需要把电话薄的电话号码返回给拨号页面,好了废话不多说啦,直接写代码啦。

模拟场景(点击联系人,返回电话号码)

页面A:main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

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

<requestFocus />
</EditText>

<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_Name2" />

</LinearLayout>


活动A的代码

public class A  extends Activity {

private Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v)    {
B.invoke(A.this);
}
});

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//判断返回的requestcode(是不是1)
switch (requestCode) {
case 1:
//判断页面B中的resultcode是否对应
if (resultCode==RESULT_OK) {
btn.setText(data.getStringExtra("value"));
}
break;

default:
break;
}
}
}


页面B:result.xml,很简单就是一个id为tv的TextView控件在里面,就不复制代码啦,关键是活动B的代码

活动B:这边进行点击textView返回值给页面A

public class B extends Activity {

private TextView tv;

public static void invoke(Activity ac,String data){
Intent i=new Intent(ac, B.class);
i.putExtra("name", data);
ac.startActivityForResult(i, 1);;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
tv=(TextView) findViewById(R.id.tv);
tv.setText("hello");
tv.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i=new Intent();
i.putExtra("value", tv.getText());
//这边返回的resultCode为RESULT_OK,页面A会进行判断
setResult(RESULT_OK, i);
//切记一定要关闭当前Activity,因为我一直忘记写这个代码,会看不见效果的
finish();
}
});
}
}


好啦,到此结束啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: