首先activity之间的数据传递就是android
用intent和intent+bundleapi
intentapp
传递ide
Intent i= new Intent(MainActivity.this,TheAty.class); i.putExtra("date","Hello SWWWWWW"); startActivity(i);
接受数据this
Intent i =getIntent(); tv=(TextView) findViewById(R.id.tv); //经过“date”关键字进行添加tv.setText(i.getStringExtra("date"));
intent+bundlespa
传递数据code
Intent i= new Intent(MainActivity.this,TheAty.class); Bundle b=new Bundle(); b.putString("name","SWWWWW"); b.putInt("age",21); b.putString("depart","KuaiJi"); i.putExtras(b); startActivity(i);
接受数据orm
Intent i =getIntent(); Bundle data=i.getExtras(); tv=(TextView) findViewById(R.id.tv); tv.setText(String.format("name=%s,age=%d,depart=%s",data.getString("name"),data.getInt("age"),data.getString("depart")));
下面就是Activity与fragment之间的传递数据对象
activity传给fragmentblog
第一种
MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putString("DATA",values);//这里的values就是咱们要传的值 myFragment.setArguments(bundle);
第二种
//宿主activity中的getTitles()方法 public String getTitles(){ return "hello"; } //Fragment中的onAttach方法 @Override public void onAttach(Activity activity) { super.onAttach(activity); titles = ((MainActivity) activity).getTitles(); } //经过强转成宿主activity,就能够获取到传递过来的数据
3 这个回调方法,在不少api中常用,我就看了一天api我就知道这种回调常用并且很是有用
Fragment向activity中传值
1.在Fragment中写一个回调接口
2.在activity中实现这个回调接口
3,在Fragment中onAttach 方法中获得activity中实现好的 实例化接口对象
4,用接口的对象 进行传值
activity
package com.qianfeng.fragmenttoactivity; import com.qianfeng.fragmenttoactivity.Fragmen1.CallBackValue; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.view.Menu; import android.widget.TextView; @SuppressLint("NewApi") public class MainActivity extends Activity implements CallBackValue{ private TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1 = (TextView) findViewById(R.id.tv1); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.contents, new Fragmen1()); transaction.commit(); } //要获取的值 就是这个参数的值 @Override public void SendMessageValue(String strValue) { // TODO Auto-generated method stub tv1.setText(strValue); } }
Frag
@SuppressLint("NewApi") public class Fragmen1 extends Fragment{ private Button btn1; private EditText et1; CallBackValue callBackValue; /** * fragment与activity产生关联是 回调这个方法 */ @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); //当前fragment从activity重写了回调接口 获得接口的实例化对象 callBackValue =(CallBackValue) getActivity(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragment_layout1, container, false); btn1 = (Button) view.findViewById(R.id.btn1); et1 = (EditText) view.findViewById(R.id.et1); btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String strValue = et1.getText().toString().trim(); callBackValue.SendMessageValue(strValue); } }); return view; } //定义一个回调接口 public interface CallBackValue{ public void SendMessageValue(String strValue); } }
ment