gpt4 book ai didi

java - 在android中将数据从一个 Intent 传递到另一个 Intent

转载 作者:行者123 更新时间:2023-12-01 14:33:33 28 4
gpt4 key购买 nike

我正在尝试将 user_id 值从一个 Intent 传递到另一个 Intent。我知道这是一个非常简单的过程,而且我已经这样做了好几次了。但对于下面的代码,我有点困惑。

我需要将 user_id 值从 MainActivity 类传递到 MenuFragment 类。而代码中的实际流程是这样的——

MainActivity将调用MenuActivity,MenuActivity将调用MenuFragment

这意味着,我需要将 user_id 值从 MainActivity 传递到 MenuActivity,然后从 MenuActivity 传递到 MenuFragment。我对吗?

如果是,我可以将 user_id 值从 MainActivity 类传递到 MenuActivity 类,但我不确定如何将相同的 user_id 值从 MenuActivity 类传递到 MenuFragment 类。由于我调用 MenuFragment 类的方式略有不同,因此我不确定在这种情况下该怎么做。

谁能帮我解决这个问题吗?

下面是MainActivity类

public class MainActivity extends MapActivity {

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Bundle bundle = getIntent().getExtras();
user_id = bundle.getString("USERID");

setContentView(R.layout.sample);

findViewById(R.id.sample_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources()
.getDisplayMetrics());
SlideoutActivity.prepare(MainActivity.this, R.id.inner_content, width);

Bundle bundle = new Bundle();
bundle.putString("USERID", user_id);
Intent thesisProject = new Intent(MainActivity.this, MenuActivity.class);
thesisProject.putExtras(bundle);
startActivity(thesisProject);

overridePendingTransition(0, 0);
}
});
}
}

下面是 MenuActivity 类

    public class MenuActivity extends FragmentActivity {

private SlideoutHelper mSlideoutHelper;
private String user_id;

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Bundle bundle = getIntent().getExtras();
user_id = bundle.getString("USERID");

mSlideoutHelper = new SlideoutHelper(this);
mSlideoutHelper.activate();
getSupportFragmentManager().beginTransaction().add(com.korovyansk.android.slideout.R.id.slideout_placeholder, new MenuFragment(), "menu").commit();
mSlideoutHelper.open();
}

....

}

下面是 MenuFragment 类

public class MenuFragment extends ListFragment {

private String user_id;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, new String[] { " Settings", " Attributes"}));
getListView().setCacheColorHint(0);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

//get selected items
String selectedValue = (String) getListAdapter().getItem(position);

if(selectedValue.equals(" Attributes")) {
Bundle bundle = new Bundle();
bundle.putString("USERID", user_id);
Intent thesisProject = new Intent(getActivity(), MatchingInterest.class);
thesisProject.putExtras(bundle);

startActivity(thesisProject);
}
}
}

最佳答案

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
user_id = getActivity().getIntent().bundle.getString("USERID");
}

只需在 fragment 中使用 getIntent() 之前附加 getActivity() 函数即可。

关于java - 在android中将数据从一个 Intent 传递到另一个 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16682484/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com