如何将片段变量访问到主活动类中

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)

那么如何才能将片段类变量值访问到主要活动中?

Kal*_*aya 6

在你的片段创建中

(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)