frament中不能调用getSystemService()方法

qq271967835 2014-05-13 10:21:04
我想在一个frament中实现左右滑动实现该frament中的frament切换,在网上看了代码以后自己做了一下,可是出现了调用getSystemService()出错的问题,请问是怎么回事

引用的部分代码:
package com.example.fragmenttest1;


import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ViewFlipper;

public class FragmentSearch extends Fragment implements OnGestureListener{

private GestureDetector mGestureDetector;
private ViewFlipper viewFlipper;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_search, container, false);
}

@SuppressWarnings("deprecation")
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mGestureDetector = new GestureDetector(this);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);//(该行getSystemService()编译出错 )

viewFlipper = (ViewFlipper)getView().findViewById(R.id.viewflipper);
View viewOne = inflater.inflate(R.layout.one,null);
viewFlipper.addView(viewOne);

}

@Override
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
}

@Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
}

@Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}

}

...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQLdataW 2014-05-15
  • 打赏
  • 举报
回复
detector指的是GestureDetector类型的变量,也就是你程序的mGestureDetector
SQLdataW 2014-05-15
  • 打赏
  • 举报
回复
除了重载 onFling(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3)还要重载 public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return this.detector.onTouchEvent(event); } 这样就使得detector能接受消息响应了。
SQLdataW 2014-05-15
  • 打赏
  • 举报
回复
你的public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { // TODO Auto-generated method stub return false; }滑动没实现,所以没有滑动效果
逍遥笑 2014-05-14
  • 打赏
  • 举报
回复 1
使用context调用getSystemService,先获取Context
qq271967835 2014-05-14
  • 打赏
  • 举报
回复
引用 1 楼 SQLdataW 的回复:
LayoutInflater inflater = (LayoutInflater)getActivity(). getSystemService(Context.LAYOUT_INFLATER_SERVICE);//(该行getSystemService()编译出错 ),我之前是这么弄得,你试试吧,不行我也不会了,我刚刚学这个
你好,现在问题不会报错了。程序也可以正常运行,但是左右滑动没有反应,请问是怎么回事?
SQLdataW 2014-05-13
  • 打赏
  • 举报
回复
LayoutInflater inflater = (LayoutInflater)getActivity(). getSystemService(Context.LAYOUT_INFLATER_SERVICE);//(该行getSystemService()编译出错 ),我之前是这么弄得,你试试吧,不行我也不会了,我刚刚学这个

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧