2016-09-30 3 views
0

Я использовал демо от андроид учебники, но генерировать ошибку какКак получить данные в AutoCompleteTextView с использованием базы данных 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. 

полный код следующим образом:

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> 

Я хочу получить предложение из базы данных в моем AutoCompleteTextview Я пробовал много, но его вообще не работало. 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 

ответ

0

Ошибка из этого метода.

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

Ошибка cannot find symbol variable menu и причина uses or overrides a deprecated API.

Вероятно, вы используете старую версию AppCompat библиотеки. Ссылка на новую версию appcompat в build.gradle.

Обновлено

Согласно обновленному вопрос, вы получаете android.os.NetworkOnMainThreadException. Это исключение возникает, когда приложение пытается выполнить сетевую операцию в своем основном потоке. Чтобы устранить эту проблему, запустите свой код в AsyncTask.

Также добавьте это в AndroidManifest.xml файл.

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

компиляции 'com.android.support:appcompat-v7:24.1.1' –

+0

, что я должен сделать для решения этого? –

+0

@ user6880336 Вы можете удалить метод 'onCreateOptionsMenu', если вам не нужен' OptionsMenu' – Bishan

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