Android 异步调用适配器不显示任何内容
我有个问题。 当Android 异步调用适配器不显示任何内容,android,android-asynctask,adapter,Android,Android Asynctask,Adapter,我有个问题。 当asyctask结束时,我设置了一个适配器。 所有代码规则,但当代码膨胀时,屏幕保持白色。代码没有抛出任何异常,我放了一些日志来控制执行流。一切正常,但屏幕保持白色。 我正在这样做: protected class ObtenerCursos extends AsyncTask<Void, Void, Boolean> { private JSONArray resultado; private ProgressDialog dialog; p
asyctask
结束时,我设置了一个适配器。
所有代码规则,但当代码膨胀时,屏幕保持白色。代码没有抛出任何异常,我放了一些日志来控制执行流。一切正常,但屏幕保持白色。
我正在这样做:
protected class ObtenerCursos extends AsyncTask<Void, Void, Boolean> {
private JSONArray resultado;
private ProgressDialog dialog;
private Activity_Mis_Curso activity;
List <Curso> lista;
public ObtenerCursos(Activity_Mis_Curso misCursos){
this.activity=misCursos;
}
@Override
protected Boolean doInBackground(Void... params) {
resultado = getCursos(url,usuario);
if (resultado != null) {
lista=parseJSONDocumentos(resultado);
return true;
} else {
return false;
}
}
protected void onPreExecute() {
dialog = ProgressDialog.show(Activity_Mis_Curso.this,
"Obteniendo cursos", "Espere por favor...", true);
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
if (result) {
gridView = (GridView) findViewById(R.id.miscursos_Grid);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
gridView.setNumColumns(3);
numColumns = 3;
} else {
numColumns = 2;
gridView.setNumColumns(2);
}
gridView.setAdapter(new MisCursosAdapter(Activity_Mis_Curso.this, listaCursos, numColumns));
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (listaCursos.get(position).getSoloReproduccion() == 0) {
Intent i = new Intent(Activity_Mis_Curso.this,
Activity_Main_Tradicional.class);
i.putExtra("Curso", listaCursos.get(position));
finish();
startActivity(i);
} else {
Intent i = new Intent(Activity_Mis_Curso.this,
Activity_Curso_SoloReproductor.class);
i.putExtra("Curso", listaCursos.get(position));
finish();
startActivity(i);
}
}
});
Log.e("ando", "por aqui \n\n");
} else {
Toast.makeText(getBaseContext(), "No se han encontrado cursos",
Toast.LENGTH_LONG).show();
Intent in = new Intent(Activity_Mis_Curso.this,
Activity_Index.class);
finish();
startActivity(in);
}
}
}
受保护类ObtenerCursos扩展异步任务{
私人JSONArray resultado;
私人对话;
私人活动;
清单a;
公共收款人账户(活动账户){
本活动=杂项;
}
@凌驾
受保护的布尔doInBackground(Void…params){
resultado=getCursos(url,usuario);
if(resultado!=null){
lista=parseJSONDocumentos(resultado);
返回true;
}否则{
返回false;
}
}
受保护的void onPreExecute(){
dialog=ProgressDialog.show(活动\u Mis\u Curso.this,
“奥特尼恩多·库索斯”、“埃斯佩尔·波尔·福斯……”,没错);
}
受保护的void onPostExecute(布尔结果){
dialog.cancel();
如果(结果){
gridView=(gridView)findViewById(R.id.miscursos_Grid);
if(getResources().getConfiguration().orientation==Configuration.orientation\u){
gridView.setNumColumns(3);
numColumns=3;
}否则{
numColumns=2;
gridView.setNumColumns(2);
}
setAdapter(新的MiscursAdapter(Activity_Mis_Curso.this、listaCursos、numColumns));
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
if(listaCursos.get(position).getSoloReproduccion()==0){
意向i=新意向(活动_Mis _Curso.this,
活动(主要课程和传统课程);
i、 putExtra(“Curso”,listaCursos.get(position));
完成();
星触觉(i);
}否则{
意向i=新意向(活动_Mis _Curso.this,
活动(Curso\u SoloReproductor.class);
i、 putExtra(“Curso”,listaCursos.get(position));
完成();
星触觉(i);
}
}
});
Log.e(“ando”、“por-aqui\n\n”);
}否则{
Toast.makeText(getBaseContext(),“No se han encontrado cursos”,
Toast.LENGTH_LONG).show();
意向输入=新意向(活动\u Mis\u Curso.this,
活动指数(类别);
完成();
星触觉(in);
}
}
}
我找不到我的问题在哪里,我不知道我做了什么不好。为什么要在异步任务中设置适配器?如果在调用任务之前只在执行后代码和适配器上设置数据不是更好吗?什么是
numColumns
?NumColums是我在gridView中插入的列数。我在执行asyctask之前尝试插入适配器。我设置了适配器con postexecute,因为我必须将arrayList传递给适配器。。。如果不是,适配器上的arraylist为空否?我不确定