您还可以通过使用Interface、使用LocalBroadcastManager 之类的EventBus 或使用Intent 开始一个新的Activity 以及将某种形式的flag 传递到其extras Bundle 来实现此目的或者别的什么。
这是一个使用接口的例子:
1.在界面中添加函数sendDataToActivity()(EventListener)。
//EventListener.java
public interface EventListener {
public void sendDataToActivity(String data);
}
2. 在您的MainActivity 中实现此功能。
// MainActivity.java
public class MainActivity extends AppCompatActivity implements EventListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void sendDataToActivity(String data) {
Log.i("MainActivity", "sendDataToActivity: " + data);
}
}
3. 在MyFragment 和attach 中创建监听器到Activity。
4.最后,使用listener.sendDataToActivity("Hello World!")调用函数。
// MyFragment.java
public class MyFragment extends Fragment {
private EventListener listener;
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
if(activity instanceof EventListener) {
listener = (EventListener)activity;
} else {
// Throw an error!
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my, container, false);
// Send data
listener.sendDataToActivity("Hello World!");
return view;
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
}
希望对你有所帮助~