2016-09-30 1 views
0

je la démo de tutoriels Android, mais il génère l'erreur commeComment obtenir des données dans AutoCompleteTextView en utilisant la base de données mysql?

Error:(116, 36) error: cannot find symbol variable menu 
Note: C:\Users\sachin\Desktop\AddVisit\app\src\main\java\com\example\sachin\addvisit\MainActivity.java uses or overrides a deprecated API. 

le code complet comme suit:

Mainactivity.java

package com.example.sachin.addvisit; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 
import android.widget.Toast; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONArray; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 

public class MainActivity extends Activity { 

    InputStream is=null; 
    String result=null; 
    String line=null; 

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

     try 
     { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://10.0.2.2/portal/autocomplete.php"); 
      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 
     { 
      JSONArray JA=new JSONArray(result); 
      JSONObject json= null; 
      final String[] str1 = new String[JA.length()]; 
      for(int i=0;i<JA.length();i++) 
      { 
       json=JA.getJSONObject(i); 
       str1[i]=json.getString("name"); 
      } 

      final AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); 
      final List<String> list = new ArrayList<String>(); 

      for(int i=0;i<str1.length;i++) 
      { 
       list.add(str1[i]); 
      } 

      Collections.sort(list); 

      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), 
        android.R.layout.simple_spinner_item, list); 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      text.setThreshold(1); 
      text.setAdapter(dataAdapter); 

      text.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
// TODO Auto-generated method stub 
        Toast.makeText(getBaseContext(), list.get(arg2).toString(), Toast.LENGTH_SHORT).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; 
    } 

} 

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

<AutoCompleteTextView android:id="@+id/autoCompleteTextView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="60dp" 
    android:ems="13" 
    android:hint="AutoCompleteTextView" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <requestFocus /> 
</AutoCompleteTextView> 

    </RelativeLayout> 

Je veux obtenir une suggestion de la base de données dans mon AutoCompleteTextview J'ai essayé beaucoup, mais sa ne fonctionne pas du tout. please refer this link i tried this demo

Logcat

10-01 10:14:04.119 2921-2921/com.example.sachin.addvisit E/Fail 1: android.os.NetworkOnMainThreadException 
10-01 10:14:04.152 2921-2921/com.example.sachin.addvisit E/Fail 2: java.lang.NullPointerException: lock == null 
10-01 10:14:04.153 2921-2921/com.example.sachin.addvisit E/Fail 3: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference 

Répondre

0

erreur est de ce procédé.

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

erreur est cannot find symbol variable menu et la cause est uses or overrides a deprecated API.

Vous utilisez probablement une ancienne version de la bibliothèque appcompat. Référencez la nouvelle version de appcompat dans build.gradle.

Mise à jour

Selon la question mise à jour, vous obtenez android.os.NetworkOnMainThreadException. Cette exception est levée lorsqu'une application tente d'effectuer une opération de mise en réseau sur son thread principal. Pour résoudre ce problème, exécutez votre code dans AsyncTask.

Ajoutez également ceci au fichier AndroidManifest.xml.

<uses-permission android:name="android.permission.INTERNET"/> 
+0

compilation 'com.android.support:appcompat-v7:24.1.1' –

+0

que dois-je faire pour résoudre ce? –

+0

@ user6880336 Vous pouvez supprimer la méthode 'onCreateOptionsMenu' si vous n'avez pas besoin d'un' OptionsMenu' – Bishan