2012-10-09 17 views
8

मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जिसमें मुझे खोज विकल्प मिल गया है। उस खोज बॉक्स में, यदि मैं 'ए' टाइप करता हूं, तो मैं अपने सभी दोस्तों के सभी नामों को शुरू करना चाहता हूं, जिन्हें मैं वेब सर्वर से प्राप्त करूंगा। लेकिन इसके लिए मुझे प्रत्येक पत्र टाइप करने के साथ-साथ अनुरोध करना होगा। लेकिन जब मैं गुस्सा आया, मुझे मिश्रित प्रतिक्रिया मिली। कुछ लोगों ने कहा कि एंड्रॉइड में अजाक्स कॉल संभव नहीं है। मूल रूप से एंड्रॉइड जावा पर आधारित है। फिर AJAX कॉल करने के लिए क्यों संभव नहीं है। अगर कोई संभव हो तो एंड्रॉइड में AJAX कॉल से संबंधित किसी अच्छे लिंक पर कोई मुझे मार्गदर्शन कर सकता है?एंड्रॉइड में AJAX कॉल किया जा सकता है?

उत्तर

3

हाँ यह संभव है, लेकिन कुछ शर्तों और प्रतिबंधों के साथ।

अधिक जानकारी के लिए इन संसाधनों की जाँच करें:

Can you use AJAX calls with Android?

Android: Implication of using AsyncTask to make repeated Ajax Calls

https://developer.android.com/guide/topics/search/search-dialog.html

http://www.grokkingandroid.com/android-tutorial-adding-search-to-your-apps/

1

निकटतम मैं जानता हूँ कि एक AutoCompleteTextView उपयोग कर रहा है। इसके लिए आपको एक कस्टम एडाप्टर बनाना होगा जो वेब सर्वर पर कॉल करता है जब भी कोई उपयोगकर्ता कुछ टाइप करता है और उसके आधार पर फ़िल्टर परिणाम देता है।

Here's an example

+0

जब भी उपयोगकर्ता किसी पत्र में टाइप करता है तो अक्सर सर्वर को मारना अच्छा विचार नहीं है। यह समय लेने वाला है। सभी डेटा को समय-समय पर लोड करना और एडाप्टर में बाद में इसका उपयोग करना अच्छा है। –

+0

हाँ, सच है। मेरा सुझाव अच्छा है जब मेरे लिए मामला एक ही समय में सभी डेटा लोड करना संभव नहीं है। – mattboy

+0

यदि मेरे पास हजारों डेटा हैं, तो मैं एक लोडमोर सूचीदृश्य में सूचीबद्ध हूं –

1

एसिन्टास्क का उपयोग करके स्क्रीन लोड करने पर सर्वर से नाम प्राप्त करें। फिर आप अपनी आवश्यकता प्राप्त करने के लिए AutoCompleteTextView या MultiAutoCompleteTextView का उपयोग कर सकते हैं।

आप एडाप्टर में पहले ही नाम प्राप्त नाम निर्दिष्ट करते हैं। अधिक पर AutoCompleteTextView

और MultiAutoCompleteTextView

4

आप droidQuery, जो jQuery के एंड्रॉयड बंदरगाह है, और सुविधाओं का अधिकाधिक और की वाक्य रचना jQuery, अजाक्स सहित, शामिल हैं का उपयोग कर सकते हैं। उदाहरण के लिए:

$.ajax(new AjaxOptions().url("http://www.example.com").type("GET").dataType("json").success(new Function() { 
    @Override 
    public void invoke($ d, Object... args) { 
     JSONObject json = (JSONObject) args[0]; 
     //TODO handle json. If expecting a JSONArray, just cast args[0] to JSONArray. 
    } 
}).error(new Function() { 
    @Override 
    public void invoke($ d, Object... args) { 
     AjaxError error = (AjaxError) args[0]; 
     Toast.makeText(MyActivity.this, "Error (" + error.status + "): " + error.reason, Toast.LENGTH_LONG).show(); 
    } 
})); 
संबंधित मुद्दे