2013-08-24 4 views
0

я имею проблему передачи значений из TextView в диалоге AsyncTask добавить в базу данных, вот код:Pass значение из TextView в диалоге AsyncTask

public void addfooddialog(View v){ 
    final Dialog dialog = new Dialog(context); 
    dialog.setContentView(R.layout.addfooddialog); 
    dialog.setTitle("Insert food"); 
    dialog.setCancelable(false); 
    dialog.show(); 
    Button b = (Button)dialog.findViewById(R.id.addfood); 
    b.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       new add().execute(); 
       } 
     }); 
    } 

и вот класс расширения AsyncTask

class add extends AsyncTask<String, String, String> { 
    Dialog d= new Dialog(context); 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     d.setContentView(R.layout.addfooddialog); 
     Log.i("","ata3 men hon"); 

    } 

    @Override 
    protected String doInBackground(String... arg0) { 

     TextView title= (TextView)d.findViewById(R.id.plattername); 
     TextView description= (TextView) d.findViewById(R.id.description); 
     TextView price= (TextView)d. findViewById(R.id.price); 
      String foodname = title.getText().toString(); 
      String fooddescription = description.getText().toString(); 
        String foodprice = price.getText().toString(); 

 // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("title", foodname)); 
     params.add(new BasicNameValuePair("description", fooddescription)); 
     params.add(new BasicNameValuePair("price", foodprice)); 

     // getting JSON Object 
     // Note that create product url accepts POST method 
     JSONObject json = jsonParser.makeHttpRequest(url_add, 
       "POST", params); 
     final String TAG_SUCCESS = "success"; 

     // check log cat fro response 
     Log.d("Create Response", json.toString()); 

     // check for success tag 
     try { 
      int success = json.getInt(TAG_SUCCESS); 

      if (success == 1) { 
       // successfully created product 
       Log.i("sucees","---------------------------------"); 

       // closing this screen 
       finish(); 
      } else { 
       // failed to create product 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

} 
    } 

Теперь я знаю, что диалог воссоздается и поэтому значения возврата в нуль, но как я па s значения непосредственно в класс asynctask?

Спасибо заранее

+0

Пожалуйста, форматировать Ваш код правильно и удалить несвязанные линии, как Ведение журналов и так далее. Его действительно трудно узнать, что происходит здесь, со всем, что нечаянный код обернулся. – danijoo

+0

oke отредактировал ... я добавляю название, описание и цену еды, в диалоговом окне я заполняю текстовые поля и нажимаю кнопку, onclick он должен передавать значения в asynctask, чтобы он помещал их в базу данных ... – ralph

+0

вы можете отредактировать его правильно и, пожалуйста, код рефакторинга –

ответ

0

вы можете создать глобальную переменную, которая принимает значение от EditText и используя переменную в AsyncTask класса

+0

да, я просто попробовал это всего пару минут назад, и это сработало. спасибо anw :) – ralph

+0

также вы можете использовать sharedpreferences для сохранения важных данных и сохранения его с помощью всего цикла активности, Вы можете пометить ответ как принятый, чтобы помочь другим –

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