只需将变量从Android发送到php

时间:2016-07-12 09:36:39

标签: php android variables

我是Android的新手,我尝试过来自这里和其他网站的很多帖子中提供的解决方案,但没有一个适合我。我想从Android Activity中传递两个变量(单击一个按钮时)。

我正在尝试将变量从Activity传递到php页面。 这会在模拟器上运行吗?或者我必须发布该应用才能看到它正常工作?

感谢您的时间

到目前为止,我有以下代码(感谢Sohail Zahid):

public class Main3Activity extends AppCompatActivity {

public String num_pal, precio, l_origen, l_destino, texto, banner_id, full_id;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);

    Intent intent=getIntent();
    double precio = intent.getExtras().getDouble("precio");
    String l_origen = intent.getExtras().getString("l_origen");
    String l_destino = intent.getExtras().getString("l_destino");
    String texto= intent.getExtras().getString("texto");
    int pal = intent.getExtras().getInt("num_pal");
    num_pal = String.valueOf(pal);
    String precio_rounded = String.format("%.2f", precio);
    TextView txtCambio = (TextView) findViewById(R.id.textView4);
    txtCambio.setText("Precio Total: "+ precio_rounded + " €");
}

void MakePostRequest() {
        String posting_url ="https://www.example.org/movil/ingles/page.php";

        StringRequest postRequest = new StringRequest(Request.Method.POST, posting_url ,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonResponse = new JSONObject(response);
                        precio= jsonResponse.getString("precio_rounded");
                        l_origen= jsonResponse.getString("l_origen");
                        l_destino= jsonResponse.getString("l_destino");
                        texto= jsonResponse.getString("texto");
                        num_pal= jsonResponse.getString("num_pal");

                    } catch (JSONException e) {
                        e.printStackTrace();
                        banner_id = null;
                        full_id = null;
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    error.printStackTrace();
                    precio= null;
                    l_origen= null;
                    l_destino= null;
                    texto= null;
                }
            }
    ) {
        // here is params will add to your url using post method
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            params.put("precio", precio);
            params.put("l_origen", l_origen);
            params.put("l_destino", l_destino);
            params.put("texto", texto);
            params.put("num_pal", num_pal);
            //params.put("2ndParamName","valueoF2ndParam");
            return params;
        }
    };
    Volley.newRequestQueue(this).add(postRequest);
}

带有&#34; onclick&#34;

的按钮

但是,单击此按钮时应用程序将关闭并报告错误。

有人知道为什么吗?

2 个答案:

答案 0 :(得分:1)

您可以使用post或get通过URL将变量发送到PHP

  

最后一个问题:我还读到,我不能用这些变量做其他事情,而不是在屏幕上显示它们,所以如果我想&#34;播放&#34;与他们一起,我将把它们存储在一个数据库中。这是真的吗?

可以将它们存储在数据库中或分配给全局变量以便以后使用

答案 1 :(得分:1)

使用Post Method将参数/值发送到php脚本就是一个简单的例子。

Post Request

void MakePostRequest() {
            String posting_url ="http://webIpaddress/android/ads/ids.php";
            // its your url path ok
            StringRequest postRequest = new StringRequest(Request.Method.POST, posting_url ,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            try {
                                JSONObject jsonResponse = new JSONObject(response);
                               String value1= jsonResponse.getString("Your ID1");
                               String value2= jsonResponse.getString("Your ID2");

                            } catch (JSONException e) {
                                e.printStackTrace();
                                banner_id = null;
                                full_id = null;
                            }
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            error.printStackTrace();
                           String  value1= null;
                           String  value2= null;
                        }
                    }
            ) {
           // here is params will add to your url using post method
                @Override
                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<>();
                    params.put("app","sendingValuesHere");
                    //params.put("2ndParamName","valueoF2ndParam");
                    return params;
                }
            };
            Volley.newRequestQueue(this).add(postRequest);
        }