已解决:缺少postData()的 View 参数,已更改以反射(reflect)这一点。
我想要将GPS数据发送到服务器的帮助,该服务器将使用PHP存储在MySQL数据库中。
这在我的Java文件中:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
public void postData(View v)
{
nameValuePairs.add(new BasicNameValuePair("Lat","19.80"));
nameValuePairs.add(new BasicNameValuePair("Lon","13.22"));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://www.xxxxxxxx.com/test.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
Log.i("postData", response.getStatusLine().toString());
}
catch(Exception e)
{
Log.e("log_tag", "Error in http connection "+e.toString());
}
}
而我的PHP:
<?php
include 'connect.php'; //Connect
//retrieve the data
$lat = $_POST['lat'];
$lon = $_POST['lon'];
$sql = "INSERT INTO Coords (Lat, Lon) VALUES('$lat', '$lon')";
if (!mysql_query($sql, $sqlCon))
{
die('Error: ' . mysql_error());
}
else
{
//echo "1 record added";
}
include 'closeConnection.php';
?>
堆栈跟踪:
项目-Heat [Android应用程序]
02-06 00:37:14.265: ERROR/AndroidRuntime(1607): FATAL EXCEPTION: main
02-06 00:37:14.265: ERROR/AndroidRuntime(1607): java.lang.IllegalStateException: Could
not find a method **postData(View)** in the activity class com.nathanhunston.heat.Main for
onClick handler on view class android.widget.Button with id 'dropLocBtn'
最佳答案
堆栈跟踪的第一行确切地告诉您您在做什么错:
02-06 00:37:14.265: ERROR/AndroidRuntime(1607): FATAL EXCEPTION: main
02-06 00:37:14.265: ERROR/AndroidRuntime(1607): java.lang.IllegalStateException: Could not find a method postData(View) in the activity class com.nathanhunston.heat.Main for onClick handler on view class android.widget.Button with id 'dropLocBtn'
这是因为在
View
方法声明中没有postData()
参数。关于php - Android:发送要存储在MySQL中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4910415/