我有当前的应用程序,该应用程序从MySQL数据库发送和检索数据,但是到目前为止,我要传递的信息是String。如何更新下面的代码以也可以发送图像。

public class NewProductActivity extends Activity {

// Progress Dialog

private ProgressDialog pDialog;

JSONParser jsonParser = new JSONParser();

EditText inputName;

EditText inputPrice;

EditText inputDesc;

EditText inputImg;

Button btnTakePhoto;

ImageView imgTakenPhoto;

private static final int CAM_REQUREST = 1313;

// url to create new product

private static String url_create_product = "http://buiud.com/android_connect/create_product.php";

// JSON Node names

private static final String TAG_SUCCESS = "success";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.add_product);

// Edit Text

inputName = (EditText) findViewById(R.id.inputName);

inputPrice = (EditText) findViewById(R.id.inputPrice);

inputDesc = (EditText) findViewById(R.id.inputDesc);

inputImg = (EditText) findViewById(R.id.imageView1);

// Create button

Button btnCreateProduct = (Button) findViewById(R.id.btnCreateProduct);

// button click event

btnCreateProduct.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// creating new product in background thread

new CreateNewProduct().execute();

}

});

btnTakePhoto = (Button) findViewById(R.id.button1);

imgTakenPhoto = (ImageView) findViewById(R.id.imageView1);

btnTakePhoto.setOnClickListener(new btnTakePhotoClicker());

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == CAM_REQUREST) {

Bitmap thumbnail = (Bitmap) data.getExtras().get("data");

imgTakenPhoto.setImageBitmap(thumbnail);

}

}

class btnTakePhotoClicker implements Button.OnClickListener

{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(cameraIntent, CAM_REQUREST);

}

}

/**

* Background Async Task to Create new product

* */

class CreateNewProduct extends AsyncTask {

/**

* Before starting background thread Show Progress Dialog

* */

@Override

protected void onPreExecute() {

super.onPreExecute();

pDialog = new ProgressDialog(NewProductActivity.this);

pDialog.setMessage("Creating Product..");

pDialog.setIndeterminate(false);

pDialog.setCancelable(true);

pDialog.show();

}

/**

* Creating product

* */

protected String doInBackground(String... args) {

String name = inputName.getText().toString();

String price = inputPrice.getText().toString();

String description = inputDesc.getText().toString();

String image = inputImg.getText().toString();

// Building Parameters

List params = new ArrayList();

params.add(new BasicNameValuePair("name", name));

params.add(new BasicNameValuePair("price", price));

params.add(new BasicNameValuePair("description", description));

params.add(new BasicNameValuePair("image", image));

// getting JSON Object

// Note that create product url accepts POST method

JSONObject json = jsonParser.makeHttpRequest(url_create_product,

"POST", params);

// 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

Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);

startActivity(i);

// closing this screen

finish();

} else {

// failed to create product

}

} catch (JSONException e) {

e.printStackTrace();

}

return null;

}

/**

* After completing background task Dismiss the progress dialog

* **/

protected void onPostExecute(String file_url) {

// dismiss the dialog once done

pDialog.dismiss();

}

}

}

注意:我已经像其他String字段一样添加了image字段,但是应用程序现在停止了,它显然无法将图片转换为Text。让我知道您的想法或任何可用的转换。我只是拍张照片,然后将照片发送给MySQL。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐