2012-06-22 68 views
1

我需要從服務器獲取數據並填充到android的autocompleteTextView中。 我在onPerformFiltering()中獲取並在onPublishResults()中顯示時使用了自定義過濾器。 但我不需要從服務器獲取每個字符的數據Change.I需要爲特定長度的字符執行此操作。 我該怎麼做?自動完成TextView從android中的服務器填充

+1

您可以使用JSON,HttpRequest。檢查我的答案http://stackoverflow.com/questions/8653260/autocomplete-in-android-not-working-with-dynamic-data/9451022#9451022在這個例子中,我使用了Wikipedia Suggest API。 – iNan

+0

非常感謝你的工作,就像一個魅力:)我可以使用任何其他API,而不是維基百科建議API以相同的方式。 –

+0

是的,你可以使用任何其他API,你需要配置一點工作:)因爲JSON結構將從一個API更改爲另一個。 – iNan

回答

0
class ProcessUpdater extends AsyncTask <Void, Void, Void>{ 

      @Override 
      protected Void doInBackground(Void... params) { 
       // TODO Auto-generated method stub 

        DefaultHttpClient httpclient = new DefaultHttpClient(); 
        HttpGet httpget = new HttpGet("url"); 
        HttpResponse response = httpclient.execute(httpget); 
        BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
        StringBuffer sb = new StringBuffer(""); 
        String line = ""; 
        String NL = System.getProperty("line.separator"); 
        while ((line = in.readLine()) != null) { 
         sb.append(line + NL); 
        } 
        in.close(); 
        String result = sb.toString(); 
        Log.v("My Response :: ", result); 
        JSONObject jsonObject = new JSONObject(result); 
        JSONArray resultArray = jsonObject.getJSONArray("Process"); 
        for (int i = 0; i < resultArray.length(); i++) { 
         JSONObject c = resultArray.getJSONObject(i); 
         String sbs = c.getString("ProcessCode"); 
         ProcessList.add(sbs); 
        } 
       } catch (Exception e) { 
        // TODO: handle exception 
       } 
       return null; 
      } 
      @Override 
      protected void onPostExecute(Void result) { 
       SelectProcess.setAdapter(new ArrayAdapter<String>(youractivtyname.this, android.R.layout.simple_dropdown_item_1line, ProcessList)); 

      } 
     }