这是我第一次在国外网站上提问。我知道这里有很多大师。希望有人能帮帮我。谢谢。以下是我的问题: 首先,我在一个活动中使用ActionBar创建选项卡。
bar.addTab(bar.newTab()
.setText("支出")
.setTabListener(new TabListener<ExpensesActivity.ExpensesFragment>(
this, "支出", ExpensesActivity.ExpensesFragment.class)));
其次,在ExpensesActivity中,我使用意图转到另一个活动
public class ExpensesActivity extends Activity {
private static TextView mDateDisplay;
private static final String TAG = "ExpensesActivity";
@Override
protected void onResume() {
super.onResume();
setContentView(R.layout.activity_expenses);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager fm = getFragmentManager();
// Create the list fragment and add it as our sole content.
if (fm.findFragmentById(android.R.id.content) == null) {
ExpensesFragment list = new ExpensesFragment();
fm.beginTransaction().add(android.R.id.content, list).commit();
}
}
/**
* 从子activity返回回来保存的数据
*/
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data){
FragmentManager fm = getFragmentManager();
ExpensesFragment frag = (ExpensesFragment)fm.findFragmentByTag("支出");
fm.beginTransaction().add(android.R.id.content, frag).commit();
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 0:
Bundle bundle = data.getExtras();
String result = bundle.getString("result");
break;
default:
break;
}
}
public static class ExpensesFragment extends Fragment{
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//先得到Fragment所依附的Activity
EditText amountEdit = (EditText)getActivity().findViewById(R.id.amount_text2);
//选择类别
Button category = (Button)getActivity().findViewById(R.id.category_button);
category.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent categoryIntent = new Intent(getActivity(),CategoryActivity.class);
getActivity().startActivityForResult(categoryIntent,0);
}
});
}
/**
* 当前fragment的UI
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_expenses, container,false);
}
}
}
第三,在CategoryActivity中我保存了一些数据。
public class CategoryActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Intent intent = new Intent(CategoryActivity.this,ExpensesActivity.class);
intent.putExtra("result", "我是子activity的数据");
setResult(RESULT_OK,intent);
finish();
}
}
最后,当我调用onActivityResult方法时,我希望在ExpensesActivity中接收数据。 当我在onActivityResult方法中调试时,它永远不会工作
答案 0 :(得分:0)
您好在CategoryActivity类中使用它
Intent _intent = new Intent();
setResult(0, _intent);
finish();
我认为这会对你有所帮助。