如何在基本适配器中使用进度对话框

问题描述:

我有一些文字浏览和按钮的自定义列表视图。在按钮上单击我想将listview值保存到服务器,以执行此任务我使用asyntask但我的代码崩溃pregress对话框中。我遇到问题如何传递活动的情况下使用进度对话框如何在基本适配器中使用进度对话框

public class ListViewAdapter extends BaseAdapter{ 

    Context context; 
    public arrayList<Planning> arraylist; 
    private static LayoutInflater inflater = null; 
    public PlanningList_activity planActivity; 
    public ListView mListview; 
    Db_sqlite databaseHelper; 

    public ListViewAdapter(Context context,ArrayList<Plan> arraylist) { 
    this.context = context; 
    this.planArraylist = plan0Arraylist; 
    inflater = (LayoutInflater)  context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    databaseHelper = new Db_sqlite(context); 
} 
@Override 
public int getCount() { 
    return planArraylist.size(); 
} 

@Override 
public Planning getItem(int arg0) { 
    return planArraylist.get(arg0); 
} 

@Override 
public long getItemId(int arg0) { 
    return arg0; 
} 


@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder holder; 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.single_lv_item, parent, false); 

      holder = new ViewHolder(); 


      holder.tvdrCode = (TextView convertView.findViewById(R.id.Plan_no); 
      holder.tvDrName = (TextView) convertView.findViewById(R.id.doc_name); 
      holder.tvterrcode= (TextView) convertView.findViewById(R.id.mon); 
      holder.tvAdr = (TextView) convertView.findViewById(R.id.adr); 
      holder.tvClassDesc = (TextView) convertView.findViewById(R.id.class_desc); 
      holder.tvspeciality = (TextView) convertView.findViewById(R.id.ff_code); 
      holder.tvAreaName = (TextView) convertView.findViewById(R.id.area_name); 
      holder.tvShift = (TextView) convertView.findViewById(R.id.shift); 
      holder.btn_visited =(Button)convertView.findViewById(R.id.button1); 
      holder.btn_visited.setTag(position); 
      holder.btn_visited.setOnClickListener(ButtonClickListener); 
      convertView.setTag(holder); 

     } 

     else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     Planning p = planArraylist.get(position); 
     holder.tvdrCode.setText(p.getDocCode()); 
     holder.tvDrName.setText(p.getDocName()); 
     holder.tvterrcode.setText(p.getTerrCode()); 
     holder.tvAdr.setText(p.getAdr()); 
     holder.tvClassDesc.setText(p.getClassDesc()); 
     holder.tvspeciality.setText(p.getSP()); 
     holder.tvAreaName.setText(p.getAreaName()); 
     holder.tvShift.setText(p.getMornEven()); 

     return convertView; 
    } 

    static class ViewHolder { 
     TextView tvdrCode; 
     TextView tvDrName; 
     TextView tvterrcode; 
     TextView tvAdr; 
     TextView tvClassDesc; 
     TextView tvspeciality; 
     TextView tvAreaName; 
     TextView tvShift; 
     Button btn_visited;  
    } 

大概contextnull。使用mContext你所传递SaveDCR类的构造函数用于创建进度条:

 @Override 
     protected void onPreExecute() { 
      progressDialog = new ProgressDialog(mContext); 
      progressDialog.setMessage("Saving..."); 
      progressDialog.setCancelable(false); 
      progressDialog.show(); 
      Log.e("sending dvr to sqlite","yes"); 

     } 

而且从按钮点击通上下文:

new SaveDCR(v.getContext()).execute(dvr); 
+0

感谢,我应该通过什么这里....新SaveDCR( planActivity).execute(DVR); – 2015-02-06 10:37:51

+0

@konainali:看到我的回答 – 2015-02-06 10:38:13

+0

@konainali:使用'new SaveDCR(v.getContext())。execute(dvr); ' – 2015-02-06 10:38:29