Mark-遇到的问题2015-0526(intent、fragment)

来源:互联网 发布:知金科技投资 编辑:程序博客网 时间:2024/05/15 01:25

1、switch(int index)其中的参数问题,此参数必须是整形的常量,即在声明时使用 final修饰(这个问题很初级。。。。)

2、intent实现拨打电话和发送短信的操作

makecall

加入权限

<uses-permission  android:name="android.permission.CALL_PHONE" />makecall:Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:110"));startActivity(intent);sendMessage:Intent intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse("smsto:110"));//intent.putExtra("sms_body", "Your are my friend!!");startActivity(intent);

sendMessage:

Intent intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse("smsto:110"));//intent.putExtra("sms_body", "Your are my friend!!");startActivity(intent);


3、fragment 间数据传递

//ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(“”));Fragmentmanager fragmentManager= getFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();    if (fragmentContacts == null) {     fragmentContacts = new FragmentContacts();     transaction.replace(R.id.home_screen_content, fragmentContacts);    } else {     transaction.show(fragmentContacts);    }    Bundle bundle = new Bundle();    bundle.putString("key", "技术部门");      fragmentContacts.setArguments(bundle);      transaction.commit(); 跳转另外一个Fragment后通过调用String string = getArguments().getString("key");

4、fragment的onpause()和onresume()方法

Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。

@Override    public void setUserVisibleHint(boolean isVisibleToUser) {        super.setUserVisibleHint(isVisibleToUser);        if (isVisibleToUser) {            //相当于Fragment的onResume        } else {            //相当于Fragment的onPause        }    }

通过阅读ViewPager和PageAdapter相关的代码(这句是拿来主义),切换Fragment实际上就是通过设置setUserVisibleHint和setMenuVisibility来实现的,调用这个方法时并不会释放掉Fragment(即不会执行onDestoryView)。


0 0