我基本上尝试的是访问片段中的变量并在我的活动中删除它。
它可以在我的片段中获取活动的变量,但不是相反:
我做了什么:
[{"Importancee":"adasdasd","Date":"2005-10-32","Descriptione":""},
{"Importance":"6.0","Date":"2015-10-02","Description":"a"}]
甚至可以将其作为“另一种方式”吗?
(我的活动中片段的访问变量)?
答案 0 :(得分:0)
您可以通过片段管理器中的id / tag获取片段,并随意使用它们。
答案 1 :(得分:0)
这非常容易。 如果要在运行时添加片段(使用FragmentManager) 你正在创建该片段的对象...只需保留与你的引用,你就可以调用任何函数或访问片段的任何变量。 例如你的片段是MyFragment
MyFragment mf = new MyFragment();
getSupportFragmentManger()。beginTrans ......你知道添加片段的代码 然后简单地通过mf.change();
调用任何方法...来说...更改()或者您可以执行类似
的操作MyFragment mf = (MyFragment) findFragmentById(R.id.container);
and then again mf.change();
答案 2 :(得分:0)
您需要实现侦听器。 您可以在此处详细了解:Communicating with Other Fragments
以下是如何将数据(或null
)从Activity传递到片段的代码示例:
public class FragmentA extends Fragment implements FragmentCommunicator{
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity)getActivity()).fragmentCommunicator = this;
}
@Override
public void passDataToFragment(String str) {
//str is the string variable you pass from the Activity, it can be null...
}
}}
接下来是FragmentCommunicator类:
public interface FragmentCommunicator{
public void passDataToFragment(String str);}
活动:
public class MainActivity extends FragmentActivity{
public FragmentCommunicator fragmentCommunicator;
public void someMethod(String someString) {
fragmentCommunicator.passDataToFragment(someString);
}}
当你从Activity调用passDataToFragment()
时,它会将字符串(或任何其他变量)传递给片段方法passDataToFragment()
。