zhuyangyang123 2012-07-06 14:19 采纳率: 0%
浏览 179
已采纳

怎样在一个类中 得到 数据库的 Context ? ? ? 我这样写 会得到吗? 可是还是报空指针。。。

[code="java"]

public class MovieService{
public static Context context1;

private DatabaseHelper dbHelper;
@SuppressWarnings("static-access")
public MovieService(Context context) {
    this.context1 = context;
    this.dbHelper = new DatabaseHelper(context1);
}

/**
 * 添加电影
 * @param movie
 */


public List<Movie> addOnline_All(Movie movie){
    List<Movie> list=new ArrayList<Movie>();
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    db.execSQL("insert into Online_All (television,name,type,region,year,actor,num,link)values(?,?,?,?,?,?,?,?)", 
            new Object[]{movie.getTelevision(),movie.getName(),movie.getType(),movie.getRegion(),movie.getYear(),
            movie.getActor(),movie.getNum(),movie.getLink()});
    return list;
}

}

//下面这个类是 想数据库添加信息的方法 因为 因为是 将xml 里面的内容解析出来 然后放到一个集合里面 所以 下面这个类 是 遍历集合 然后想数据库添加

public class TraverseSet extends AsyncTask>, List>, List>>{
private String television;
private String name;
private String type;
private String region;
private String year;
private String actor;
private int numint;
private String link;
Context context = MovieService.context1;

public Context getContext() {
    return context;
}


protected List<Map<String, Object>> doInBackground(
        List<Map<String, Object>>... params) {

    System.out.println("进入  遍历集合。。。。。。。。。。。");
    List<Map<String,Object>> typenum = params[0]; 
    System.out.println("有值没有========"+typenum.size());

    for (Iterator<Map<String, Object>> typeiterator = typenum.iterator(); typeiterator.hasNext();) {

        System.out.println("进入  遍历====集合。。。。。。。。。。。");
        Map<String, Object> num = typeiterator.next();

        numint = (Integer) num.get("num");
        name = (String) num.get("name");
        type = (String) num.get("type");
        region = (String) num.get("region");
        actor = (String) num.get("actor");
        year = (String) num.get("year");
        link = (String) num.get("link");
        television = (String) num.get("television");

        System.out.println(" 遍历集合。。。。。完毕。。。开始向数据库中添加。。。");


        System.out.println("得到的television -------"+television+"------");
        System.out.println("得到的name -------"+name+"------");
        System.out.println("得到的type -------"+type+"------");
        System.out.println("得到的region -------"+region+"------");
        System.out.println("得到的year -------"+year+"------");
        System.out.println("得到的actor -------"+actor+"------");
        System.out.println("得到的num -------"+numint+"------");
        System.out.println("得到的link -------"+link+"------");

        /*  Context c = doInBackground("com.android.testpalyer.sql", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);  
        //载入这个类  
        Class clazz = c.getClassLoader().loadClass("com.android.testpalyer.sql.MovieService");  
        //新建一个实例  
        Object owner = clazz.newInstance();  
        //获取print方法,传入参数并执行  
        Object obj = clazz.getMethod("addOnline_All", MovieService.class);*/

        MovieService ms = new MovieService(this.getContext());
        Movie movie = new Movie();
        movie.setName(name);
        System.out.println("get........."+movie.getName());
        movie.setActor(actor);
        movie.setLink(link);
        movie.setNum(numint);
        movie.setRegion(region);
        movie.setTelevision(television);
        movie.setType(type);
        movie.setYear(year);

        ms.addOnline_All(movie);

        System.out.println("添加数据完毕。。。。。"+ms);

    }
    return typenum;
}

}

[/code]

  • 写回答

1条回答

  • wanghuanqiufly 2012-07-06 14:34
    关注

    你用的是数据源吗?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?