I am trying to connect database in MySQL with android,but when data enter in NewProductActivity and click on createproduct button then generate error of Unfortunately has stopped. code given below. In this database path is given but i don't know exactly which path i have to give because i used wamp and database open through localhost. After running this program, click on button to insert value in database pointer go into createProduct class and its method but do not go into doInbackground().
//NewProductActivity
package com.example.projectewithmysql;
import java.io.Console;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;
public class NewProductActivity extends Activity
{
private EditText inputName;
private EditText inputPrice;
private EditText inputDesc;
private Button btnCreateProduct;
JSONParser jsonParser = new JSONParser();
private static String url_create_product = "**localhost/android_coonect/product.php**";
// JSON Node names
private static final String TAG_SUCCESS = "success";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_product);
inputName = (EditText) findViewById(R.id.inputName);
inputPrice = (EditText) findViewById(R.id.inputPrice);
inputDesc = (EditText) findViewById(R.id.inputDesc);
// Create button
btnCreateProduct = (Button) findViewById(R.id.btnCreateProduct);
btnCreateProduct.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Enter into button",Toast.LENGTH_LONG).show();
new CreateNewProduct().execute();
Toast.makeText(getApplicationContext(), "call createNewProduct",Toast.LENGTH_LONG).show();
}
});
}
class CreateNewProduct extends AsyncTask<String, String, String>
{
private ProgressDialog pDialog;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "onPreExecute", Toast.LENGTH_LONG).show();
super.onPreExecute();
pDialog = new ProgressDialog(NewProductActivity.this);
pDialog.setMessage("Creating Product..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... args0)
{
System.out.println("doInBackground");
Toast.makeText(getApplicationContext(), "doInBackground", Toast.LENGTH_LONG).show();
// TODO Auto-generated method stub
String name = inputName.getText().toString();
String price = inputPrice.getText().toString();
String description = inputDesc.getText().toString();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("price", price));
params.add(new BasicNameValuePair("description", description));
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = jsonParser.makeHttpRequest(url_create_product,
"POST", params);
Toast.makeText(getApplicationContext(), ""+url_create_product, Toast.LENGTH_LONG).show();
// 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;
}
@Override
protected void onPostExecute(String result)
{
// TODO Auto-generated method stub
super.onPostExecute(result);
Toast.makeText(getApplicationContext(), "onPostExecute", Toast.LENGTH_LONG).show();
pDialog.dismiss();
}
}
}
here i am not used web-server but using json and I give information about database
I have made androiddb database and table is products that is given below
CREATE TABLE products(
pid int(11) primary key auto_increment,
name varchar(100) not null,
price decimal(10,2) not null,
description text,
created_at timestamp default now(),
updated_at timestamp
);
I try to enter data through android activity but error generate so please help..`enter code here`
obviously 'localhost' isn't the correct URL that you want to connect to.
if you're running this app from an emulator and you want to connect to a web server running on the pc running the emulator, use 10.0.2.2, more about this - http://developer.android.com/tools/devices/emulator.html
if you're not on an emulator, use the actual ip/host of the machine running the web server. make sure its accessible to the Android device first.
如果你在emulator us 10.0.2.2上运行这个应用程序,如果你想在真实设备上使用,那么使用你的计算机IP地址192.168.XX
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.