2014-11-15 3 views
0

Я хотел создать приложение, которое подключается к базе данных и вставляет/удаляет/отображает что-то. Довольно просто, особенно если PHP делает выбор для него.Android connect на MYSQL с использованием PHP

Сначала я попытался это сделать, я нашел несколько решений, но большинство из них не работало для меня, последнее, что я пробовал, выглядит просто потрясающе. Однако есть некоторые проблемы, он выдаст ошибку с:

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

у вас activity_main.xml в/RES/расположение и/RES/папки меню? –

+0

Привет Мохаммад, справа у меня есть activity_main.xml в макете и main.xml в меню. Правильно ли это? Это что-то по умолчанию, созданное eclipse (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

Да, ваш код исправить ошибку, и я могу попробовать запустить приложение RUN сейчас, но он сбой после запуска :(Есть ли способ, как я могу узнать, где проблема? Потому что у меня нет ошибок или чего-либо в коде, кроме приложения crash so .. – Andurit

+0

проверить свой вывод logcat на наличие ошибок и задать другой вопрос для этого! –

Смежные вопросы