2015-02-06 4 views
0

У меня есть пользовательское listview с некоторыми текстовыми изображениями и кнопкой. При нажатии кнопки я хочу сохранить значения 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;  
    } 

ответ

0

Вероятно context является null. использовать 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); –

+0

@ konainali: см. Мой ответ –

+0

@konainali: используйте 'new SaveDCR (v.getContext()). Execute (dvr); ' –

Смежные вопросы