Java 将事件从活动中的一个片段发送到另一个片段 我正在尝试将事件从活动中的一个片段发送到另一个片段
Fragment1.javaJava 将事件从活动中的一个片段发送到另一个片段 我正在尝试将事件从活动中的一个片段发送到另一个片段,java,android,android-fragments,Java,Android,Android Fragments,Fragment1.java public class Fragment1 extends Fragment implements View.OnClickListener{ Button BTN; Communicator comm; int count=0; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bu
public class Fragment1 extends Fragment implements View.OnClickListener{
Button BTN;
Communicator comm;
int count=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment1, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
BTN=(Button) getActivity().findViewById(R.id.button_id);
comm=(Communicator)getActivity();
BTN.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
count++;
comm.respond("clicked "+count+" times");
}
}
public class Fragment2 extends Fragment{
TextView ET;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment2, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ET=(TextView) getActivity().findViewById(R.id.textView_id);
}
public void ChangeText(String data)
{
ET.setText(data);
}
}
public class MainActivity extends FragmentActivity implements Communicator{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void respond(String data) {
// TODO Auto-generated method stub
FragmentManager manager=getSupportFragmentManager();
Fragment2 f2=(Fragment2) manager.findFragmentById(R.id.fragment2);
f2.ChangeText(data);
}
}
public interface Communicator {
public void respond(String data);
}
Fragment2.java
public class Fragment1 extends Fragment implements View.OnClickListener{
Button BTN;
Communicator comm;
int count=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment1, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
BTN=(Button) getActivity().findViewById(R.id.button_id);
comm=(Communicator)getActivity();
BTN.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
count++;
comm.respond("clicked "+count+" times");
}
}
public class Fragment2 extends Fragment{
TextView ET;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment2, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ET=(TextView) getActivity().findViewById(R.id.textView_id);
}
public void ChangeText(String data)
{
ET.setText(data);
}
}
public class MainActivity extends FragmentActivity implements Communicator{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void respond(String data) {
// TODO Auto-generated method stub
FragmentManager manager=getSupportFragmentManager();
Fragment2 f2=(Fragment2) manager.findFragmentById(R.id.fragment2);
f2.ChangeText(data);
}
}
public interface Communicator {
public void respond(String data);
}
MainActivity.java
public class Fragment1 extends Fragment implements View.OnClickListener{
Button BTN;
Communicator comm;
int count=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment1, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
BTN=(Button) getActivity().findViewById(R.id.button_id);
comm=(Communicator)getActivity();
BTN.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
count++;
comm.respond("clicked "+count+" times");
}
}
public class Fragment2 extends Fragment{
TextView ET;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment2, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ET=(TextView) getActivity().findViewById(R.id.textView_id);
}
public void ChangeText(String data)
{
ET.setText(data);
}
}
public class MainActivity extends FragmentActivity implements Communicator{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void respond(String data) {
// TODO Auto-generated method stub
FragmentManager manager=getSupportFragmentManager();
Fragment2 f2=(Fragment2) manager.findFragmentById(R.id.fragment2);
f2.ChangeText(data);
}
}
public interface Communicator {
public void respond(String data);
}
Communicator.java
public class Fragment1 extends Fragment implements View.OnClickListener{
Button BTN;
Communicator comm;
int count=0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment1, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
BTN=(Button) getActivity().findViewById(R.id.button_id);
comm=(Communicator)getActivity();
BTN.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
count++;
comm.respond("clicked "+count+" times");
}
}
public class Fragment2 extends Fragment{
TextView ET;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment2, container,false);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ET=(TextView) getActivity().findViewById(R.id.textView_id);
}
public void ChangeText(String data)
{
ET.setText(data);
}
}
public class MainActivity extends FragmentActivity implements Communicator{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void respond(String data) {
// TODO Auto-generated method stub
FragmentManager manager=getSupportFragmentManager();
Fragment2 f2=(Fragment2) manager.findFragmentById(R.id.fragment2);
f2.ChangeText(data);
}
}
public interface Communicator {
public void respond(String data);
}
日志::
注意::我使用的是较低版本的android,因此我在片段1中的所有位置都使用了支持片段
View view=inflater.inflate(R.layout.fragment1, container,false);
return view;
然后
你能把你的xml布局也张贴在你有这些片段的地方吗