您的位置:首页 > 移动开发 > Android开发

ZT onActivityResult在android中的用法

2013-10-14 17:18 363 查看

onActivityResult在android中的用法

举例说我想要做的一个事情是,在一个主界面(主[b]Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这个时候就要用到回调函数onActivityResult()。[/b]

现在贴上一个关于[b]onActivityResult的用法的小例子的代码:[/b]

onActivityResult.java

主要的Activity,一会会先执行此Activity,然后调用B Activity,并向其发送数据,通过回调函数来获取B传回来的值。

public class onActivityResult extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

StartA();

}

public void StartA()

{

Button buttonA = (Button)findViewById(R.id.button1);

buttonA.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

// onActivityResult.this.setContentView(R.layout.second);

// onActivityResult.this.StartB();

Intent intent = new Intent(onActivityResult.this,ClassB.class);

String passString = "Hello,this is A";

intent.putExtra("ToB", passString);

startActivityForResult(intent, 0);

}

});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK

case RESULT_OK:

Bundle b=data.getExtras(); //data为B中回传的Intent

String str=b.getString("FromB");//str即为回传的值

TextView view = (TextView)findViewById(R.id.textA);

view.setText(str);

break;

default:

break;

}

}

/*public void StartB()

{

Button buttonB = (Button)findViewById(R.id.button2);

buttonB.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

onActivityResult.this.setContentView(R.layout.main);

onActivityResult.this.StartA();

}

});

}*/

}

----------------------------------------------------------------------------------------------------------------------

ClassB.java

public class ClassB extends Activity{

private Intent intent;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.second);

intent = getIntent();

String result = intent.getStringExtra("ToB");

Button button = (Button)findViewById(R.id.button2);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent = new Intent(ClassB.this,onActivityResult.class);

String passString = "Hello,this is B";

intent.putExtra("FromB", passString);

setResult(RESULT_OK, intent);

finish();

}

});

TextView textView = (TextView)findViewById(R.id.textB);

textView.setText(result);

}

}

----------------------------------------------------------------------------------------------------------------------

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