当前位置: 代码迷 >> Android >> andriod怎么实现类间调用
  详细解决方案

andriod怎么实现类间调用

热度:20   发布时间:2016-04-28 05:48:43.0
andriod如何实现类间调用
我在一个类ActionService里面调用另一个类DBUtil总是报错,为什么?

private DBUtil dbUtil;

  List<String> list = new ArrayList<String>(); 
  list=dbUtil.GetXiaZhongDTTime("333", "777");   //这句报错

下面是完整代码
public class ActionService extends Service {
private DBUtil dbUtil;
private static int num = 0;
//定义音乐播放器变量
private MediaPlayer mPlayer=new MediaPlayer();
Time t=new Time();
/* (non-Javadoc)
 * @see android.app.Service#onBind(android.content.Intent)
 */
@Override
public IBinder onBind(Intent arg0) {
return null;
}

@Override
public void onCreate() {
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.sjdqnel);
super.onCreate();
}

@Override
public void onStart(Intent intent, int startId) {
t.setToNow();

List<String> list = new ArrayList<String>(); 
list=dbUtil.GetXiaZhongDTTime("333", "777");   //这句报错
System.out.print("GetXiaZhongDTTime:"+list.get(0).toString());
//if(t.second==50 || t.second==51 || t.second==52)  //这句可以
if("true".equals(list.get(0).toString()))  
{
if(mPlayer.isPlaying()==false)
{
mPlayer.start();
}
}
super.onStart(intent, startId);
Log.e("ActionService", t.second+"Service New Message !" + num++);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("ActionService", "----------");
return super.onStartCommand(intent, flags, startId);
}

}

------解决方案--------------------
报什么错?引入该类的包名了没?
------解决方案--------------------
你那个方法是不是 定义成     private  了    这才会找不到资源
------解决方案--------------------
private DBUtil dbUtil = new DBUtil (); 要这样写
------解决方案--------------------
先要确认下是static方法不,如果不是就要初始化一个实例,同楼上的。
------解决方案--------------------
可以把DBUtil 设为static类,里面的方法也为static,就直接调用
------解决方案--------------------
你没有创建这个 DBUtil  类的 对象,就直接调用这个类的方法了。