使用json连接android与php和mysql:不工作

时间:2013-11-19 13:59:02

标签: php android mysql json

我正在尝试使用json连接android和php以及mysql。这是我编码的一部分,即添加数据。

基于编码

私有静态字符串url_create_fixture =“http:// android_connect / create_product.php”;

如果我通过Android手机而不是模拟器测试此应用程序,那么ip地址应该是什么?

另一个问题,我在手机上测试了这个应用程序,它说 process.com.example.mobile_fixtures意外停止了工作。请再试一次。

这是因为错误的IP还是我的流程出了问题?

package com.example.mobile_fixtures;

public class NewFixturesActivity extends Activity {

// Progress Dialog
private ProgressDialog pDialog;

JSONParser jsonParser = new JSONParser();
EditText inputDate;
EditText inputTime;
EditText inputStadium;
EditText inputHome;
EditText inputAway;


// url to create new product
private static String url_create_fixtures = "http://10.1.1.6/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_fixtures);

    // Edit Text
    inputDate = (EditText) findViewById(R.id.inputDate);
    inputTime = (EditText) findViewById(R.id.inputTime);
    inputStadium = (EditText) findViewById(R.id.inputStadium);
    inputHome = (EditText) findViewById(R.id.inputHome);
    inputAway = (EditText) findViewById(R.id.inputAway);

    // 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();
        }
    });
}

/**
 * Background Async Task to Create new product
 * */
class CreateNewProduct extends AsyncTask<String, String, String> {

    /**
     * Before starting background thread Show Progress Dialog
     * */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(NewFixturesActivity.this);
        pDialog.setMessage("Creating Fixtures..");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    /**
     * Creating product
     * */
    protected String doInBackground(String... args) {
        String date = inputDate.getText().toString();
        String time = inputTime.getText().toString();
        String stadium = inputStadium.getText().toString();
        String home = inputHome.getText().toString();
        String away = inputAway.getText().toString();


        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("date", date));
        params.add(new BasicNameValuePair("time", time));
        params.add(new BasicNameValuePair("stadium", stadium));
        params.add(new BasicNameValuePair("home", home));
        params.add(new BasicNameValuePair("away", away));

        // getting JSON Object
        // Note that create product url accepts POST method
        JSONObject json = jsonParser.makeHttpRequest(url_create_fixtures,
                "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(), AllFixturesActivity.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();
    }

}
}

2 个答案:

答案 0 :(得分:0)

不要在doInBackground中启动新的UI活动,而是将其移动到postExecute中。

答案 1 :(得分:0)

如果您在PC上运行php服务器,则应该可以通过手机访问该PC。 10.1.1.6是内部网络IP地址,因此您可能无法通过手机访问它。