0

ダイアログのテキストビューから 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;
    }

}
   }

ダイアログが再作成されていることがわかりました。これが値がnullに戻る理由ですが、値をasynctaskクラスに直接渡すにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

0

クラスEditTextで変数を使用して値を取得するグローバル変数を作成できますAsyncTask

于 2013-08-24T22:27:21.060 に答える