Android的传递和PHP接收参数参数、Android、PHP

2023-09-05 23:57:21 作者:素酒青衣贤

如何从一个活动到PHP端传递的参数和其他活动收到?在PHP身边,我会做查询,所以我的查询取决于传递的参数从一个活动和另一个活动将显示查询结果。感谢您的帮助。

how to pass parameter from one activity to php side and received by another activity? in php side, i will do query, so my query depends on passed parameter from one activity and another activity will show the result of that query. thanks for your helps.

推荐答案

1>如何传递参数的Andr​​oid应用程序,以PHP站点。   1>创建一个JSON解析器类JSONParser.java

1> how to pass parameter android app to php site. 1> create one json parser class JSONParser.java

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();     

         String paramString = URLEncodedUtils.format(params, "utf-8");          
         url += "?" + paramString;          
         HttpGet httpGet = new HttpGet(url);            
        HttpResponse httpResponse = httpClient.execute(httpGet);            
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();

    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);            
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}

}     2>为合格或接收机参数在PHP UserFunctions.java创建一个用户函数类。在这个类中的一个函数从PHP站点获取数据,另一个是通过Android应用到PHP

} 2> create one user function class for pass or receiver parameter on php UserFunctions.java . in this class one function for get data from php site and another for pass android app to php

public class UserFunctions {

private JSONParser jsonParser;

 private static String api_URL = "http://10.0.2.2/carcab_api/";

private static String login_tag = "log_in";
private static String get_user_detail_tag = "userdetail";




// constructor
public UserFunctions() {
    jsonParser = new JSONParser();
}

/**
 * function make Login Request
 * 
 * @param email
 * @param password
 * */
public JSONObject loginUser(String usr_nm, String password) {
    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", login_tag));
    params.add(new BasicNameValuePair("usr_nm", usr_nm));
    params.add(new BasicNameValuePair("password", password));
    JSONObject json = jsonParser.getJSONFromUrl(api_URL, params);
    // Log.e("JSON", json.toString());
    return json;
}

/**
 * function make get User Detail  Request
 * 
 * @param email
 * @param password
 * */

public JSONObject get_user_detail(String user_id) {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", get_user_detail_tag));
    params.add(new BasicNameValuePair("user_id", user_id));
    JSONObject json1 = jsonParser.getJSONFromUrl(api_URL, params);
    System.out.println(params);
    Log.e("JSON1", json1.toString());
    return json1;

}

}

3>我是传递参数,从机器人到PHP上点击登录按钮。 loginActivity.java

3> i am pass parameter from android to php on click of login button. loginActivity.java

public class LoginActivity extends Activity {
Button btnLogin;
EditText inputu_nm; 
EditText inputPassword;
TextView loginErrorMsg;
UserFunctions userFunction;
JSONObject json;


// JSON Response node names
private static String KEY_SUCCESS = "success";
private static String KEY_UID = "user_id";
private static String KEY_NAME = "user_name";
private static String KEY_UNM = "user_nm";
private static String KEY_OID = "off_id";
private ProgressDialog progressDialog;

private static String KEY_CREATED_AT = "created_at";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);

    // Importing all assets like buttons, text fields
    inputu_nm = (EditText) findViewById(R.id.u_nm);
    inputPassword = (EditText) findViewById(R.id.pass);     
    btnLogin = (Button) findViewById(R.id.btnlogin);
    loginErrorMsg = (TextView) findViewById(R.id.login_error);
    // Login button Click Event
    btnLogin.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {

            String u_nm = inputu_nm.getText().toString();
            String password = inputPassword.getText().toString();
            UserFunctions userFunction = new UserFunctions();               
            //pass user username and password to  android app to php
            JSONObject json = userFunction.loginUser(u_nm, password);

            // if json responce is success then user go to next home activity
            try {
                if (json.getString(KEY_SUCCESS) != null) {
                    loginErrorMsg.setText("");
                    String res = json.getString(KEY_SUCCESS);
                    if (Integer.parseInt(res) == 1) {   
                           Intent dashboard = new Intent(getApplicationContext(), HomeActivity.class);             
                           startActivity(dashboard);  

                    } else {
                        // Error in login
                        loginErrorMsg.setText("Incorrect Username Or Password");
                        inputu_nm.setText("");                          
                        inputPassword.setText("");
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });

}

}

4>现在我得到用户的细节从PHP到另一个activity.wh​​en用户的详细活动启动然后得到user.userdetail.java的所有细节

4> now i am get user detail from php to another activity.when user detail activity launch then get all detail of user.userdetail.java

public class userdetailActivity extends Activity {

// JSON Response node names
private static String KEY_SUCCESS = "success";
private static String KEY_ERROR = "error";
private static String KEY_ERROR_MSG = "error_msg";
private static String KEY_SUCCESS_MSG = "success_msg";

JSONObject json_user;
UserFunctions userFunctions;
DatabaseHandler DBHandler;
String user_name = "";
String user_password = "";
String user_address = "";
String user_mobile = "";
String user_id;
TextView username, password, address, mobile;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.userdetail);
    userFunctions = new UserFunctions();
    username = (TextView) findViewById(R.id.username);
    password = (TextView) findViewById(R.id.password);
    address = (TextView) findViewById(R.id.address);
    mobile = (TextView) findViewById(R.id.mobile);
    // i am pass static value of user id now
    user_id = "1001";

    // i am pass user id and get user detail on my activity from php
    refresh_screen(user_id);

}

private void refresh_screen(String user_id) {
    JSONObject json = userFunctions.get_user_detail(user_id);
    jsonact = json;
    // check for positive response
    try {
        if (json.getString(KEY_SUCCESS) != null) {
            String res = json.getString(KEY_SUCCESS);
            if (Integer.parseInt(res) == 1) {
                json_user = json.getJSONObject("user");

                user_name = json_user.getString("username");
                user_password = json_user.getString("password");
                user_address = json_user.getString("address");
                user_mobile = json_user.getString("mobile");

                username.setText(user_name);
                password.setText(user_password);
                address.setText(user_address);
                mobile.setText(user_mobile);

            } else if (Integer.parseInt(res) == 0) {
                Toast.makeText(getApplicationContext(), "No detail Found",
                        Toast.LENGTH_LONG).show();
            }
        } else if (json.getString(KEY_ERROR) != null) {

            String res = json.getString(KEY_ERROR);
            if (Integer.parseInt(res) == 1) {
                Toast.makeText(getApplicationContext(), "No detail Found",
                        Toast.LENGTH_LONG).show();
            }

        }
    } catch (JSONException e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "No detail Found",
                Toast.LENGTH_LONG).show();

    }
}

}