使用 Inent 将数据从 Activity 1 发送到 Activity 2 的片段
Send data from Activity1 to a fragment of Activity2 by using Inent
我想使用 Intent 将字符串从 Activity1 的 recyclerView 发送到 Activity2 的片段。为了更好地理解,这里是演示图像
所以我像这样从 recyclerView 中获取密钥
@Override
protected void populateViewHolder(EventsViewHolder viewHolder, EventDetails model, int position) {
viewHolder.setEventDate(model.getDate());
viewHolder.setEventIcon(getApplicationContext(),model.getIcon());
viewHolder.setEventTitle(model.getTitle());
viewHolder.setEventDescription(model.getDescription());
viewHolder.setEventTotalGuest(model.getTotal_guests());
String guest_key = getRef(position).getKey();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
startActivity(guestListIntent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
});
}
现在我想通过使用此 activity 的意图将 guestKey 发送到 GuestListActivity.class[=25 的片段=]
我试过捆绑包,但我无法发送数据。
TIA
首先,将数据从activity1发送到activity2
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
guestListIntent.putExtra("guest_key",guest_key)
startActivity(guestListIntent);
在 Activity 2
中捕获它
String guest_key = "";
Bundle bundle = getIntent().getExtras();
if(bundle != null){
guest_key = bundle.getString("guest_key","");
}
现在发送到 Activity 2
的片段
Bundle bundle = new Bundle();
bundle.putString("guest_key", guest_key);
NewFragment newFragment = new NewFragment();
newFragment.setArguments(bundle);
片段捕捉onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String guest_key = getArguments().getString("guest_key","");
return inflater.inflate(R.layout.fragment_item_three, container, false);
}
在这里,Activity2 的任何片段都在这个 activity 的 onCreate() 之后创建。
我建议您使用两种方法中的任何一种在 Activity2 的片段中接收数据。
方法一:
使用 Bundle with intent 发送数据并在 Activity2 中接收数据,然后在转换片段时设置为参数。
Bundle bundle = new Bundle();
bundle.putString("YOUR_KEY", "KEY_VALUE");
guestListIntent.putExtras(bundle);
startActivity(guestListIntent);
在 Activity2 中接收此数据,
Bundle extras = getIntent().getExtras();
在片段转换时设置数据,
Fragment frag = new YOUR_FRAGMENT();
frag.setArguments(extras);
在Fragment中接收数据,
String value= getArguments().getString("YOUR_KEY");
方法二:
声明静态变量。在 onClick 中赋值,然后从片段 class
访问并使用该值
您必须将数据发送到 GuestListActivity
并在 GuestListActivity
中检索数据。之后,当您进行片段跟踪或添加片段时,通过 bundle 传递数据。然后你就可以得到你想要的片段中的数据了。为了更好地理解,请参阅演示图像。
发送数据到GuestListActivity
@Override
protected void populateViewHolder(EventsViewHolder viewHolder, EventDetails model, int position) {
// other code of view holder
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
guestListIntent.putExtra("guest_key",guest_key)
startActivity(guestListIntent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
}
}
检索GuestListActivity
中的数据
@Override
protected void onCreate(Bundle savedInstanceState) {
String guest_key = "";
Bundle bundle = getIntent().getExtras();
if(bundle != null){
guest_key = bundle.getString("guest_key","");
}
}
将数据发送到您的片段
Bundle bundle = new Bundle();
bundle.putString("guest_key", guest_key);
MyFragment myFragment = new MyFragment();
myFragment.setArguments(bundle);
在您的片段中检索数据
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String guest_key = getArguments().getString("guest_key","");
}
send the data as u send from activity to activity and receive in fragment as getActivity().getIntent() and then do as you receive data in activity.
我想使用 Intent 将字符串从 Activity1 的 recyclerView 发送到 Activity2 的片段。为了更好地理解,这里是演示图像
所以我像这样从 recyclerView 中获取密钥
@Override
protected void populateViewHolder(EventsViewHolder viewHolder, EventDetails model, int position) {
viewHolder.setEventDate(model.getDate());
viewHolder.setEventIcon(getApplicationContext(),model.getIcon());
viewHolder.setEventTitle(model.getTitle());
viewHolder.setEventDescription(model.getDescription());
viewHolder.setEventTotalGuest(model.getTotal_guests());
String guest_key = getRef(position).getKey();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
startActivity(guestListIntent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
});
}
现在我想通过使用此 activity 的意图将 guestKey 发送到 GuestListActivity.class[=25 的片段=]
我试过捆绑包,但我无法发送数据。 TIA
首先,将数据从activity1发送到activity2
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
guestListIntent.putExtra("guest_key",guest_key)
startActivity(guestListIntent);
在 Activity 2
中捕获它 String guest_key = "";
Bundle bundle = getIntent().getExtras();
if(bundle != null){
guest_key = bundle.getString("guest_key","");
}
现在发送到 Activity 2
的片段 Bundle bundle = new Bundle();
bundle.putString("guest_key", guest_key);
NewFragment newFragment = new NewFragment();
newFragment.setArguments(bundle);
片段捕捉onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String guest_key = getArguments().getString("guest_key","");
return inflater.inflate(R.layout.fragment_item_three, container, false);
}
在这里,Activity2 的任何片段都在这个 activity 的 onCreate() 之后创建。
我建议您使用两种方法中的任何一种在 Activity2 的片段中接收数据。
方法一:
使用 Bundle with intent 发送数据并在 Activity2 中接收数据,然后在转换片段时设置为参数。
Bundle bundle = new Bundle();
bundle.putString("YOUR_KEY", "KEY_VALUE");
guestListIntent.putExtras(bundle);
startActivity(guestListIntent);
在 Activity2 中接收此数据,
Bundle extras = getIntent().getExtras();
在片段转换时设置数据,
Fragment frag = new YOUR_FRAGMENT();
frag.setArguments(extras);
在Fragment中接收数据,
String value= getArguments().getString("YOUR_KEY");
方法二:
声明静态变量。在 onClick 中赋值,然后从片段 class
访问并使用该值您必须将数据发送到 GuestListActivity
并在 GuestListActivity
中检索数据。之后,当您进行片段跟踪或添加片段时,通过 bundle 传递数据。然后你就可以得到你想要的片段中的数据了。为了更好地理解,请参阅演示图像。
发送数据到GuestListActivity
@Override
protected void populateViewHolder(EventsViewHolder viewHolder, EventDetails model, int position) {
// other code of view holder
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent guestListIntent = new Intent(MainActivity.this, GuestListActivity.class);
guestListIntent.putExtra("guest_key",guest_key)
startActivity(guestListIntent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
}
}
检索GuestListActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
String guest_key = "";
Bundle bundle = getIntent().getExtras();
if(bundle != null){
guest_key = bundle.getString("guest_key","");
}
}
将数据发送到您的片段
Bundle bundle = new Bundle();
bundle.putString("guest_key", guest_key);
MyFragment myFragment = new MyFragment();
myFragment.setArguments(bundle);
在您的片段中检索数据
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String guest_key = getArguments().getString("guest_key","");
}
send the data as u send from activity to activity and receive in fragment as getActivity().getIntent() and then do as you receive data in activity.