从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他们在形式。我必须在这段代码中实现日期和时间选择器?

+1

只是从你的类定义中删除实现onclicklistner语句 – micky 2014-10-31 13:21:59

+0

错误很明显,你说的Reservation是要实现OnClickListener,它有唯一的方法叫onClick(视图),你需要实现。如果你不能这样做,试着保留一个空的实现或者将类定义为抽象类,或者如果OnClickListener在任何地方都没有被使用,那就整个地去掉它。 – SMA 2014-10-31 13:22:20

+0

好的,我已经从类定义中删除了onclicklistener。 – Goro 2014-10-31 13:24:01

implements OnClickListener但你不要搭车onClick(View view) onclicklistener接口的方法是强制性的。所以请首先覆盖方法,从oncreate方法删除click listener

请参阅下面的链接了解更多信息: -

https://anujarosha.wordpress.com/2011/11/13/how-to-implements-onclicklistener-for-a-view-item-in-android/

你的类实现onClick监听器,但是你缺少方法。

要么删除implement陈述或覆盖的方法

您的logcat的问题是在这里:

public class Reservation extends Activity implements OnClickListener 

要实现OnClickListener,然后你在你的btnMenues实现匿名onClickListener。删除您的implements OnClickListener,错误将消失。

我认为这个问题是

public class Reservation extends Activity implements OnClickListener 

只是删除

implements OnClickListener 

你不需要这个