Her er eksemplet
EDIT: Opret først et databasenavn antag dbname i MySql i wamp eller på din server og opret en tabel med navnet emp_info hvor to felter tilføjes id og navn
Her er scenariet at indsætte ID og NAVN på medarbejder fra EDITTEXT til MYSQL-serverdatabasen
De globale variabler er
Strengnavn; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode;
Til aktivitetskode
import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import org.apache.http.HttpEntity;import org.apache.http. HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import .apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.os.StrictMode; import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class add extends Activity { String name; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode; String tobed =null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add); StrictMode.ThreadPolicy policy =ny StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); final EditText e_id=(EditText) findViewById(R.id.editText1); final EditText e_name=(EditText) findViewById(R.id.editText2); Button insert=(Button) findViewById(R.id.button1); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Autogenereret metode stub id =e_id.getText().toString(); name =e_name.getText().toString (); indsæt(); } }); }}
Metode til at indsætte data
public void insert() { ArrayList nameValuePairs =new ArrayList(); // sæt værdierne af id og navn i den variabel nameValuePairs.add(new BasicNameValuePair("id",id)); nameValuePairs.add(new BasicNameValuePair("navn",navn)); prøv { HttpClient httpclient =new DefaultHttpClient(); // her er php-filen // til lokal brug, hvis du f.eks. bruger wamp, skal du bare lægge filen i www/projektmappen HttpPost httppost =new HttpPost("http://10.0.2.2/project/insert2.php"); // hvis filen er på serveren HttpPost httppost =new HttpPost("http://example.com/insert2.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response =httpclient.execute(httppost); HttpEntity entity =response.getEntity(); er =enhed.getContent(); Log.e("pass 1", "forbindelse succes "); } catch(Undtagelse e) { Log.e("Fejl 1", e.toString()); Toast.makeText(getApplicationContext(), "Ugyldig IP-adresse", Toast.LENGTH_LONG).show(); } prøv { BufferedReader reader =new BufferedReader (ny InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb =new StringBuilder(); while ((line =reader.readLine()) !=null) { sb.append(line + "\n"); } is.close(); resultat =sb.toString(); Log.e("pass 2", "forbindelse succes"); } catch(Undtagelse e) { Log.e("Fejl 2", e.toString()); } prøv { // få resultatet fra php-filen JSONObject json_data =new JSONObject(result); code=(json_data.getInt("kode")); if(kode==1) { Toast.makeText(getBaseContext(), "Inserted Successfully", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getBaseContext(), "Beklager, prøv igen", Toast.LENGTH_LONG).show(); } } catch(Undtagelse e) { Log.e("Fejl 3", e.toString()); Log.i("tagconvertstr", "["+resultat+"]"); } }
her er insert2.php-filen
Anden redigering:-
For at læse data har jeg lavet asyntask
Her vises dataene i en listevisning.
public class read extends Activity { private String jsonResult;// // brug dette, hvis din fil er på serveren private String url ="http://exmaple.com/read.php"; // brug dette, hvis du lokalt bruger // private String url ="http://10.0.2.2/project/read.php"; privat listeVis listeVis; Kontekst kontekst; Strengnavn; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.read); StrictMode.ThreadPolicy policy =ny StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); kontekst =dette; listView =(ListView) findViewById(R.id.listView1); accessWebService(); }
accessWebService-metoden
public void accessWebService() { JsonReadTask task =new JsonReadTask(); task.execute(ny streng[] { url }); }
til JsonReadTask-klassen
privat klasse JsonReadTask udvider AsyncTask { // doInBackground Method interagerer ikke med UI @Override protected String doInBackground(String... params) {// nedenstående kode vil blive udført i baggrund HttpClient httpclient =new DefaultHttpClient(); HttpPost httppost =new HttpPost(params[0]); prøv { HttpResponse response =httpclient.execute(httppost); jsonResult =inputStreamToString( response.getEntity().getContent()).toString(); } catch (ClientProtocolException e) { e.printStackTrace(); Log.e("Fejl 12", e.toString()); } catch (IOException e) { Log.e("Fejl 22", e.toString()); e.printStackTrace(); } returner null; } private StringBuilder inputStreamToString(InputStream er) { String rLine =""; StringBuilder svar =new StringBuilder(); BufferedReader rd =new BufferedReader(ny InputStreamReader(er)); prøv { while ((rLine =rd.readLine()) !=null) { answer.append(rLine); } } catch (IOException e) { // e.printStackTrace(); Toast.makeText(getApplicationContext(), "Fejl..." + e.toString(), Toast.LENGTH_LONG).show(); } returnere svar; } // efter at doInBackground-metoden er udført, vil onPostExecute-metoden blive kaldt @Override protected void onPostExecute(String result) { // her kan du interagere med UI ListDrwaer(); } }// afslutte async-opgave
ListDrawaer-metoden
// build-hash-sæt til listevisning public void ListDrwaer() { List
og din read.php-filkode
og hvis du vil kontrollere din internetforbindelse, før du bruger denne indsættelse og læsning, brug denne metode .. dvs. indsæt denne metode i if else-sætning
public boolean isOnline() { ConnectivityManager cm =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo =cm.getActiveNetworkInfo(); if (netInfo !=null &&netInfo.isConnectedOrConnecting()) { return true; } returner falsk; }
Til opdatering og sletning skal du bruge indsæt-metoden til at sende værdierne til serveren og bare ændre forespørgslen på insert2.php for at opdatere dem som denne
if($r=mysql_query("OPDATERING emp_info SET medarbejder_navn ='$navn' WHERE medarbejder_navn ='$id'",$con)) { $flag['kode']=1; }
til sletning
if($r=mysql_query("SLET FRA emp_info WHERE medarbejdernavn ='$navn'",$con)) { $flag['kode']=1; ekko "hej"; }
Også når du har lært dette, den næste opgave bør du lære threading og Asyntask for at gøre det mere forbedret, da arbejdet med hovedtråden ikke er godt i Android. bare indsæt denne indsæt-metode i Asyntask, som jeg har nævnt i læsemetoden, så brugergrænsefladen ikke bliver forstyrret, og internet-tinget bliver gjort i baggrunden.
BEMÆRK:
for en ny version af php tilføj denne linje efter uddrag
error_reporting(E_ALL ^ E_DEPRECATED);