Android 从片段到活动的数据
我正在尝试使用活动中的方法将数据从片段传递到活动:Android 从片段到活动的数据,android,android-intent,android-fragments,android-activity,start-activity,Android,Android Intent,Android Fragments,Android Activity,Start Activity,我正在尝试使用活动中的方法将数据从片段传递到活动: public void setID(int i,int j) { theme = i; thread = j; } 然后,从片段中,我使用意图创建活动并传递数据: private class ListItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView a
public void setID(int i,int j) {
theme = i;
thread = j;
}
然后,从片段中,我使用意图创建活动并传递数据:
private class ListItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) {
int pos=position+1;
ThreadActivity threadactivity = new ThreadActivity();
threadactivity.setID(id,pos);
Intent q = new Intent(getActivity(), threadactivity.getClass());
startActivity(q);
}
}
但是,当活动开始时,“i”和“j”的值为0。我做错了什么?此
ThreadActivity ThreadActivity=new ThreadActivity()代码>没有意义,因为您无法控制活动的创建。这个系统确实如此。所以,活动之间的所有数据传输都是通过intent完成的,而不是getter和setter
Intent q = new Intent(getActivity(),ThreadActivity.class);
q.putExtra("theme", i);
q.putExtra("thread" j);
startActivity(q);
然后使用getIntent().getIntExtra(VARNAME,defaultValue)
在下一个活动中获取值 此ThreadActivity ThreadActivity=new ThreadActivity()代码>没有意义,因为您无法控制活动的创建。这个系统确实如此。所以,活动之间的所有数据传输都是通过intent完成的,而不是getter和setter
Intent q = new Intent(getActivity(),ThreadActivity.class);
q.putExtra("theme", i);
q.putExtra("thread" j);
startActivity(q);
然后使用getIntent().getIntExtra(VARNAME,defaultValue)
在下一个活动中获取值 您创建的活动与您开始时的意图不同。您应该将参数传递到intent中,然后将它们返回到活动中
private class ListItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView arg0, View arg1, int position, long arg3)
{
Intent intent = new Intent(context, threadactivity.class);
intent.putExtra("theme", id);
intent.putExtra("thread", pos);
startActivity(intent);
}
}
然后在活动的onCreate中,您将执行以下操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
theme = (int) getIntent().getExtras().get("theme");
thread = (int) getIntent().getExtras().get("thread");
}
您创建的活动与您开始时的意图不同。您应该将参数传递到intent中,然后将它们返回到活动中
private class ListItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView arg0, View arg1, int position, long arg3)
{
Intent intent = new Intent(context, threadactivity.class);
intent.putExtra("theme", id);
intent.putExtra("thread", pos);
startActivity(intent);
}
}
然后在活动的onCreate中,您将执行以下操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
theme = (int) getIntent().getExtras().get("theme");
thread = (int) getIntent().getExtras().get("thread");
}
这不是向活动传递数据的正确方法。使用Intent
传递数据。
请阅读以下内容:
这不是向活动传递数据的正确方法。使用Intent
传递数据。
请阅读以下内容:
请像下面这样使用
((YourActivity)getActivity()).yourMethod();
yourMethod()已在“活动”中声明。请按如下方式使用
((YourActivity)getActivity()).yourMethod();
你的方法()是在活动中声明的。请查看此使用界面,以便将消息从片段发送到活动。这在处理多屏幕时是一件好事。切勿自己创建活动的实例。
请查看此使用界面,以便将消息从片段发送到活动。这在您准备处理多屏幕从不自己创建活动的实例。哦,天哪,这么简单。我试着和临时演员联系,但我不知道如何在活动中给他们打电话。非常感谢你!没问题,很乐意帮忙哦,天哪,很简单。我试着和临时演员联系,但我不知道如何在活动中给他们打电话。非常感谢你!没问题,很乐意帮忙