从Android应用程序提交数据到MySQL数据库
我想写预订并保存它的表单。所以有4-5字段的形式为name, phone, email, comment, time, date, table, people
。我必须告诉我,在Java和Android中我很新,不知道如何做到这一点,但我在努力。此外,我认为现在代码非常混乱,所以我需要一些帮助。 这里是到目前为止的代码的Reservation.java
从Android应用程序提交数据到MySQL数据库
public class Reservation extends Activity implements
OnClickListener {
String Name;
String Email;
String Phone;
String Comment;
String DateTime;
String Time;
String Table;
String numberOfPeople;
private EditText editText1, editText3, editText2, editText4, txtDate, txtTime;
private Button btnCalendar, btnTimePicker, btnMenues;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reservation);
editText1 = (EditText) findViewById(R.id.editText1);
editText3 = (EditText) findViewById(R.id.editText3);
editText2 = (EditText) findViewById(R.id.editText2);
editText4 = (EditText) findViewById(R.id.editText4);
txtDate = (EditText) findViewById(R.id.txtDate);
txtTime = (EditText) findViewById(R.id.txtTime);
btnCalendar = (Button) findViewById(R.id.btnCalendar);
btnTimePicker = (Button) findViewById(R.id.btnTimePicker);
btnMenues = (Button) findViewById(R.id.btnMenues);
btnMenues.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Name = editText1.getText().toString();
Phone = editText3.getText().toString();
Email = editText2.getText().toString();
Comment = editText4.getText().toString();
DateTime = txtDate.getText().toString();
DateTime = txtTime.getText().toString();
new SummaryAsyncTask().execute((Void) null);
}
});
}
class SummaryAsyncTask extends AsyncTask<Void, Void, Boolean> {
private void postData(String name, String email, String phone,
String comment, String date, String table, String numberofpeople) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://link.to.server.com/saveReservation.php");
try {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("Name", name));
nameValuePairs.add(new BasicNameValuePair("Email", email));
nameValuePairs.add(new BasicNameValuePair("Phone", phone));
nameValuePairs.add(new BasicNameValuePair("Comment", comment));
nameValuePairs.add(new BasicNameValuePair("Date", date));
nameValuePairs.add(new BasicNameValuePair("Table", table));
nameValuePairs.add(new BasicNameValuePair("numberOfPeople", numberofpeople));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
}
@Override
protected Boolean doInBackground(Void... params) {
postData(Name, Email, Phone, Comment, DateTime, Time, Table);
return null;
}
}
}
目前我得到的错误是
类型预订必须实现继承的抽象方法View.OnClickListener.onClick(查看) 更新:
如何将日期和时间保存在数据库中的一行或两行?如果是一行如何使它在android端?
UDPATE2: 如何现在执行btnCalendar, btnTimePicker
我有他们在reservation.xml
他们在形式。我必须在这段代码中实现日期和时间选择器?
你implements OnClickListener
但你不要搭车onClick(View view)
onclicklistener接口的方法是强制性的。所以请首先覆盖方法,从oncreate
方法删除click listener
。
请参阅下面的链接了解更多信息: -
你的类实现onClick监听器,但是你缺少方法。
要么删除implement
陈述或覆盖的方法
您的logcat的问题是在这里:
public class Reservation extends Activity implements OnClickListener
要实现OnClickListener
,然后你在你的btnMenues
实现匿名onClickListener
。删除您的implements OnClickListener
,错误将消失。
我认为这个问题是
public class Reservation extends Activity implements OnClickListener
只是删除
implements OnClickListener
你不需要这个
只是从你的类定义中删除实现onclicklistner语句 – micky 2014-10-31 13:21:59
错误很明显,你说的Reservation是要实现OnClickListener,它有唯一的方法叫onClick(视图),你需要实现。如果你不能这样做,试着保留一个空的实现或者将类定义为抽象类,或者如果OnClickListener在任何地方都没有被使用,那就整个地去掉它。 – SMA 2014-10-31 13:22:20
好的,我已经从类定义中删除了onclicklistener。 – Goro 2014-10-31 13:24:01