我通過替換所有不推薦使用的方法來更新我的應用程序。現在,我遇到了DialogFragments問題。更新DialogFragment視圖(並使用AsyncTask)
我有這樣的DialogActivity:
public class Actualizar extends FragmentActivity
{
/**BASIC ACTIVITY CODE HERE **/
/**WHERE THAT I NEED HELP **/
OnClickListener onClickListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
AsyncTaskActualizarDatos task = new AsyncTaskActualizarDatos();
task.execute();
}
};
}
當我點擊一個按鈕,我想執行時的AsyncTask。此任務應顯示一個帶有自定義佈局的DialogFragment,並通過FTP下載某個文件。
的的AsyncTask是這樣的:
public class AsyncTaskActualizarDatos extends AsyncTask<Void,Void,Void>
{
FragmentoComunicacion fragmento;
@Override
protected void onPreExecute()
{
fragmento = FragmentoComunicacion.actualizarDatos();
fragmento.show(fm, "dialog");
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
/** DO SOMETHING HERE **/
}
}
而片段是這樣的:
public class FragmentoComunicacion extends DialogFragment
{
public static FragmentoComunicacion actualizarDatos()
{
FragmentoComunicacion f = new FragmentoComunicacion();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragment_dialog_actualizar_datos, container);
getDialog().setTitle("Title");
return v;
}
}
現在......我想更新片段中的觀點(使用publishProgress) ,但我不知道我可以在哪裏做到這一點。當我嘗試在[doInBackground()]中使用fragmento.findView()時,我得到了一個nullPointerException。
我很困惑...這樣做的正確方法是什麼?
謝謝!
是的,你是真的...我的問題lem是在doInBackground方法中調用一個View ... – Desenfoque 2013-05-08 14:21:30
啊,是的,這也是一個問題。你知道如何在onPostExecute中做什麼? – 2013-05-08 14:42:40
是的......經過8個小時的良好睡眠後,我可以看到我做錯的所有事情...... – Desenfoque 2013-05-08 14:58:24