Fragment向父Activity传值

Fragment中

public class VideoOneFragment extends Fragment implements View.OnClickListener {

    private View view;
    private Button mBut1;
    private Button mBut2;
    private Button mBut3;
    //接口
    CallBackValue callBackValue;
    /**
     * fragment与activity产生关联是  回调这个方法
     */
    @Override
    public void onAttach(Context context) {
        // TODO Auto-generated method stub
        super.onAttach(context );
        //当前fragment从activity重写了回调接口  得到接口的实例化对象
        callBackValue =(CallBackValue) getActivity();
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_video_one, container, false);
        initView(inflate);
        return inflate;
    }

    private void initView(View inflate) {
        mBut1 = (Button) inflate.findViewById(R.id.but1);
        mBut1.setOnClickListener(this);
        mBut2 = (Button) inflate.findViewById(R.id.but2);
        mBut2.setOnClickListener(this);
        mBut3 = (Button) inflate.findViewById(R.id.but3);
        mBut3.setOnClickListener(this);
        callBackValue.SendMessageValue("0");
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.but1:
                callBackValue.SendMessageValue("1");
                break;
            case R.id.but2:
                callBackValue.SendMessageValue("2");
                break;
            case R.id.but3:
                callBackValue.SendMessageValue("3");
                break;
        }
    }

    //定义一个回调接口
    public interface CallBackValue{
        public void SendMessageValue(String strValue);
    }
}

Activity中

@Override
public void SendMessageValue(String strValue) {
    tv.setText(strValue);
}

猜你喜欢

转载自my.oschina.net/u/3698786/blog/1808351