2014-11-15 50 views
0

我想創建連接到數據庫並插入/刪除/顯示內容的應用程序。很簡單,特別是如果PHP做出選擇。使用PHP連接MYSQL的Android

首先,我嘗試谷歌它,我發現幾個解決方案,但其中大部分都沒有爲我工作,上次我嘗試看起來很神奇。但是有一些問題,它拋出一個錯誤有:

activity_main cannot be resolved or is not a field

package com.example.helloworld; 

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 org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONObject; 
import android.os.Bundle; 
import android.app.Activity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    String name; 
    String id; 
    InputStream is=null; 
    String result=null; 
    String line=null; 
    int code; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     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 Auto-generated method stub 

      id = e_id.getText().toString(); 
      name = e_name.getText().toString(); 

      insert(); 
     } 
    }); 
    } 

    public void insert() 
    { 
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

    nameValuePairs.add(new BasicNameValuePair("id",id)); 
    nameValuePairs.add(new BasicNameValuePair("name",name)); 

     try 
     { 
     HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://10.0.2.2/insert.php"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 
      Log.e("pass 1", "connection success "); 
    } 
     catch(Exception e) 
    { 
      Log.e("Fail 1", e.toString()); 
      Toast.makeText(getApplicationContext(), "Invalid IP Address", 
      Toast.LENGTH_LONG).show(); 
    }  

     try 
     { 
      BufferedReader reader = new BufferedReader 
      (new InputStreamReader(is,"iso-8859-1"),8); 
      StringBuilder sb = new StringBuilder(); 
      while ((line = reader.readLine()) != null) 
     { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      result = sb.toString(); 
     Log.e("pass 2", "connection success "); 
    } 
     catch(Exception e) 
    { 
      Log.e("Fail 2", e.toString()); 
    }  

    try 
    { 
      JSONObject json_data = new JSONObject(result); 
      code=(json_data.getInt("code")); 

      if(code==1) 
      { 
     Toast.makeText(getBaseContext(), "Inserted Successfully", 
      Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
     Toast.makeText(getBaseContext(), "Sorry, Try Again", 
      Toast.LENGTH_LONG).show(); 
      } 
    } 
    catch(Exception e) 
    { 
      Log.e("Fail 3", e.toString()); 
    } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    }  
} 

人的一些基本知識,能找到一點的時間,並解釋我這還是給我一些意見,我怎麼能解決我的問題?

+0

你下/ RES /佈局和/ RES /菜單文件夾中有activity_main.xml中? –

+0

嗨Mohammad,我在菜單中有layout和main.xml中的activity_main.xml。這是對的嗎?這是默認生成的東西 (activity_main.xml = http://pastebin.com/HgM2MPcm) – Andurit

回答

1

你的菜單文件名是main.xml文件,所以你有你的代碼改成這樣:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
+0

如果我的答案解決了您的錯誤,請接受它!謝謝! ;) –

+0

是你的代碼修復錯誤,我現在可以嘗試運行應用程序,但它開始後崩潰:(有沒有辦法,我怎麼能找出問題在哪裏?因爲我沒有錯誤或任何代碼,但應用程序崩潰所以.. – Andurit

+0

檢查您的logcat輸出的錯誤,並要求另一個問題! –