我想使用接口将数据从一个活动传递到一个碎片中。请查看下面的代码片段:
接口:
片段:
当我点击按钮(或其他事件)启动一个片段时,我只想传递一些字符串,并且当片段被启动时,它应该显示一个包含该字符串的toast...请帮忙。任何帮助都将不胜感激。
接口:
public interface FragmentCommunicator {
public void passData(String name);
}
主活动:
public class MainActivity extends AppCompatActivity{
FragmentCommunicator fragmentCommunicator;
private Fragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragment= new Fragment();
fragmentCommunicator = (FragmentCommunicator) getApplication();
fragmentCommunicator.passData("hello");
getSupportFragmentManager().beginTransaction().replace(R.id.container ,fragment).commit();
}
});
}
}
片段:
public class Fragment extends android.support.v4.app.Fragment implements FragmentCommunicator {
FragmentCommunicator communicator;
Context c;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, null);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.c = context;
}
@Override
public void passData(String name) {
Toast.makeText(c, name, Toast.LENGTH_SHORT).show();
}
}
当我点击按钮(或其他事件)启动一个片段时,我只想传递一些字符串,并且当片段被启动时,它应该显示一个包含该字符串的toast...请帮忙。任何帮助都将不胜感激。