2016-04-03 6 views
0

JSONのデータを取り込み、からというデータを取得して、Android用の動的AutoCompleteTextViewを開発したいと考えています。基本的には難しいことではありませんが、どこに問題があるのでしょうか?私はjQuery​​3210オプションに触発され、入力文字の後にデータを動的に取得します。しかし、android AutoCompleteTextViewにはすべてJSONのデータがあらかじめ入力されています。
私は本当に保存が困難な何百万というデータから照会しようとしています。入力をデータベースで動的に検索する方法はありますか?Android AutoCompleteTextViewのデータベースからJSONデータを取得する最適な方法は何ですか?

例えば:このようなユーザ入力「は」それは「」ための最良の結果を取得する場合など

。次に、ユーザータイプが"ab"の場合、それは更新され、データベースから新しい結果が取り込まれます。

おかげ

+0

基本キーをJSONファイル(テキストファイル)にダウンロードし、ローカルのSQLiteデータベースにデータを保存しない場合は、それを検索できます。 –

答えて

1

私はあなたにこれだけのように見えるあなたのタスクのためだけの一般的な概要を与えるでしょう、

public List<String> suggest; //List of suggestions 

autoComplete.addTextChangedListener(new TextWatcher(){ 

     public void afterTextChanged(Editable editable) { 
      // TODO Auto-generated method stub 

     } 

     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      String newText = s.toString(); 
      new getJson().execute(newText); 
     } 

    }); 

getJson AsyncTask - >サーバーから新しい値を取得するための

class getJson extends AsyncTask<String,String,String>{ 

    @Override 
    protected String doInBackground(String... key) { 
     String newText = key[0]; 
     newText = newText.trim(); 
     newText = newText.replace(" ", "+"); 
     try{ 
      //Codes to retrieve the data for suggestions 
      suggest = new ArrayList<String>(); 
      JSONArray jArray = new JSONArray(data); 
      for(loop the array){ 
      String SuggestKey = //retrieve values by iterating; 
      suggest.add(SuggestKey); 
      } 

     }catch(Exception e){ 
      Log.w("Error", e.getMessage()); 
     } 

     //Populate suggestions 

     runOnUiThread(new Runnable(){ 
      public void run(){ 
       aAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.item,suggest); 
       autoComplete.setAdapter(aAdapter); 
       aAdapter.notifyDataSetChanged(); 
      } 
     }); 

     return null; 
    } 

0123詳細情報についてはをご覧ください。

関連する問題