activity 之间的跳转
1.普通跳转
//在监听器中,如onClickListener 方法中添加
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, AnotherActivity.class);
Bundle bundle = new Bundle(); //创建 bundle 存放对象
bundle.putString("stringValue", testValue);
intent.putExtras(bundle); //把要带的数据放入intent
startActivity(intent);
------
//在另一个intent中取出数据:
Intent intent = getIntent(); //获取启动该result 的intent
Bundle bundle = intent.getExtras();
String value = bundle.getString("cityValue");
2.通过另一个activity 输入值 再跳回
//在当前activity 中
//在监听器中,如onClickListener 方法中添加
Intent intent = new Intent(ActivityTestActivity.this,ThridActivity.class);
startActivityForResult(intent, 1); // 1 是请求码
//重写回调方法 ,该方法在 另一个activity 中结束的时候 会自动调用 。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if(resultCode == 0 && requestCode == 1)
{
Bundle data = intent.getExtras();
String resultCity = data.getString("city");
EditText city = (EditText)findViewById(R.id.address);
city.setText(resultCity);
}
}
//这是 另一个activity 类的写法 。 里面有一个listView 提供给用户选择
public class ThridActivity extends Activity {
String[] citys = new String[]{
"beijing",
"shanghai",
"guangzhou"
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third);
ListView cityListView = (ListView)findViewById(R.id.citys_listview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,citys);
cityListView.setAdapter(adapter);
cityListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int selectedItem, long arg3) {
Intent intent = getIntent();
Bundle data = new Bundle();
data.putString("city", citys[selectedItem]);
intent.putExtras(data);
ThridActivity.this.setResult(0, intent); //0 是结果码
ThridActivity.this.finish();
}
});
}
}