dee*_*pak 3 android android-layout android-fragments
我有1个主要活动类和1个片段类:
我想访问片段类的变量到我的主要活动类:
Myfragment类:
public class DemoFragment extends Fragment {
Public String mydata="hello";
.. //other code
}
Run Code Online (Sandbox Code Playgroud)
主动性等级:
public class MainActivity extends ActionBarActivity {
..//other code
DemoFragment df;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
df = new DemoFragment();
String newdata = df.mydata; //access from fragment but it shows null
}
}
Run Code Online (Sandbox Code Playgroud)
那么如何才能将片段类变量值访问到主要活动中?
在你的片段创建中
(a)两个领域:
listener mCallback;
Activity mActivity;
Run Code Online (Sandbox Code Playgroud)
(b)接口:
interface mydataBack(){
public void bringBackString(String stringSentBack);
}
Run Code Online (Sandbox Code Playgroud)
(c)方法
@Override
public void onAttach(Activity activity) {
mActivity=activity;
super.onAttach(activity);
mCallback = (listener) mActivity;
}`
Run Code Online (Sandbox Code Playgroud)
然后在Fragment中调用方法bringBackString(String),当你希望发回字符串时.
在你的主要活动:
(a)在类声明中加入"implements ... ... listener"
public class MainActivity extends ActionBarActivity implements DemoFragment.listener { etc and
Run Code Online (Sandbox Code Playgroud)
(b)实现接口方法:
public void bringBackString(String stringBroughtBack){
.... do something with the string
}
Run Code Online (Sandbox Code Playgroud)