2016-09-30 4 views
0

nutzte ich die Demo von Android-Tutorials, aber es den Fehler wieWie Daten in AutoCompleteTextView mit MySQL-Datenbank erhalten?

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. 

den vollständigen Code wie folgt zu erzeugen:

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> 

Ich möchte einen Vorschlag aus der Datenbank in meinem AutoCompleteTextview Ich habe viel versucht, aber es funktioniert überhaupt nicht. 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 

Antwort

0

Fehler ist von dieser Methode.

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

Fehler ist cannot find symbol variable menu und Ursache ist uses or overrides a deprecated API.

Sie sind wahrscheinlich eine ältere Version der appcompat Bibliothek. Verweisen Sie die neue Version von appcompat in build.gradle.

Aktualisiert

Gemäß der aktualisierten Frage, Sie werden immer android.os.NetworkOnMainThreadException. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, eine Netzwerkoperation für ihren Hauptthread auszuführen. Um dieses Problem zu beheben, führen Sie Ihren Code in AsyncTask.

Fügen Sie diese auch zu AndroidManifest.xml Datei hinzu.

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

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

+0

was soll ich tun dies für die Lösung? –

+0

@ user6880336 Sie können 'onCreateOptionsMenu'-Methode entfernen, wenn Sie kein' OptionsMenu' benötigen – Bishan

Verwandte Themen