package com.android.up;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import com.android.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class up extends Activity {
// Progress Dialog
private ProgressDialog pDialog;
private TextView tv_head;
JSONParser jsonParser = new JSONParser();
EditText inputName;
EditText inputEmail;
EditText inputDesc;
Button upback;
private static String url_up = "http://10.0.2.2/up/up.php";
private static final String TAG_MESSAGE = "message";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.up);
tv_head = (TextView)findViewById(R.id.tv_head);
tv_head.setText("建议");
tv_head.setTextSize(17);
// Edit Text
inputName = (EditText) findViewById(R.id.inputName);
inputEmail = (EditText) findViewById(R.id.inputEmail);
inputDesc = (EditText) findViewById(R.id.inputDesc);
upback = (Button)findViewById(R.id.upback);
upback.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
up.this.finish();
}
});
// Create button
Button btnCreateProduct = (Button) findViewById(R.id.btnCreateProduct);
// button click event
btnCreateProduct.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// creating new product in background thread
if(validate()){
new Up().execute();
}
}
});
}
private boolean validate()
{
String description = inputDesc.getText().toString().trim();
if (description.equals(""))
{
Toast.makeText(getApplicationContext(), "您还没填写建议", 5000).show();
return false;
}
return true;
}
/**
* Background Async Task to Create new product
* */
class Up extends AsyncTask {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(up.this);
pDialog.setMessage("wait..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Creating product
* */
protected String doInBackground(String... args) {
String name = inputName.getText().toString();
String price = inputEmail.getText().toString();
String description = inputDesc.getText().toString();
// Building Parameters
List params = new ArrayList();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("email", price));
params.add(new BasicNameValuePair("description", description));
// getting JSON Object
// Note that create product url accepts POST method
try{
JSONObject json = jsonParser.makeHttpRequest(url_up,
"POST", params);
String message = json.getString(TAG_MESSAGE);
return message;
}catch(Exception e){
e.printStackTrace();
return "g";
}
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String message) {
pDialog.dismiss();
Toast.makeText(getApplicationContext(), message, 8000).show();
}
}
}
当反馈提交后,与服务器端有个交互,如果提交成功,服务器返回提交成功给客户端接收。
服务器端代码如下:
include("conn.php");
// array for JSON response
$response = array();
// check for required fields
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['description'])) {
$name = $_POST['name'];
$price = $_POST['email'];
$description = $_POST['description'];
// mysql inserting a new row
$result = mysql_query("INSERT INTO up(name, email, description) VALUES('$name', '$email', '$description')");
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = " Ok thank you ! ";
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "failed";
echo json_encode($response);
}
} else {
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);
}
?>