【问题标题】:Fragmente and Context [closed]片段和上下文[关闭]
【发布时间】:2015-04-24 08:14:37
【问题描述】:

我将这段代码放在一个 Fragment 中,但是在 Fragment 中请求上下文时它不起作用:

SimpleCursorAdapter ad1 = new SimpleCursorAdapter(**What i put here**, R.layout.spinner, cursor, from, to); 

如果此代码进入 Activity,它将是:

SimpleCursorAdapter(**This**, R.layout.spinner, cursor, from, to); 

请帮助我。

【问题讨论】:

    标签: android android-activity fragment simplecursoradapter android-context


    【解决方案1】:

    您应该使用getActivity() 访问片段的活动上下文:

    SimpleCursorAdapter ad1 = new SimpleCursorAdapter(getActivity(), R.layout.spinner, cursor, from, to);
    

    我希望这会有所帮助。

    【讨论】:

    • 但是返回 Null...同样的方式;
    • 在这种情况下可能不想使用应用程序上下文(因为适配器通常处理视图膨胀)。只需使用getActivity()
    【解决方案2】:
       SQLiteDatabase db =  getActivity().openOrCreateDatabase("IbsPEC.db", Context.MODE_PRIVATE, null); 
              Spinner  ddlPrdutor1 = (Spinner)getActivity().findViewById(R.id.ddlProdutor1);
              Cursor cursor =  db.rawQuery("SELECT rowid _id,_grupo, id, nome FROM PRODUTOR ORDER BY NOME", null);
    
              String[] from = { "nome", "_id", "_grupo" }; 
              int[] to = { R.id.lblNome, R.id.lblId, R.id.lbl_id_FK };            
    
            SimpleCursorAdapter ad1 = new SimpleCursorAdapter(getActivity(), R.layout.spinner, cursor, from, to); 
            ad1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    
    
              ddlPrdutor1.setAdapter(ad1);
              db.close();
    

    在调试模式下,错误发生在:ddProdutor1.setAdapter(ad1); 返回异常 NullPointer 仅此而已;这个类是一个片段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多