我是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;
的按钮但是,单击此按钮时应用程序将关闭并报告错误。
有人知道为什么吗?
答案 0 :(得分:1)
您可以使用post或get通过URL将变量发送到PHP
最后一个问题:我还读到,我不能用这些变量做其他事情,而不是在屏幕上显示它们,所以如果我想&#34;播放&#34;与他们一起,我将把它们存储在一个数据库中。这是真的吗?
可以将它们存储在数据库中或分配给全局变量以便以后使用
答案 1 :(得分:1)
使用Post Method将参数/值发送到php脚本就是一个简单的例子。
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);
}