当前位置: 代码迷 >> 综合 >> Mark-遇到的问题2015-0526(intent、fragment)
  详细解决方案

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

热度:85   发布时间:2024-01-21 12:07:11.0

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搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法。

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

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


  相关解决方案