2013-06-04 6 views
17

पर काम नहीं कर रहा है, मैं प्राधिकरण गतिविधि के लिए कोड लिखने की कोशिश कर रहा हूं। जब मैं inputEmail में कुछ प्रविष्टि डाल रहा हूं, तो मुझे उम्मीद है कि मेरा इनपुट पासवर्ड स्वचालित रूप से फ़ाइल किया जाएगा यदि संबंधित रिकॉर्ड मौजूद है। हालांकि ITemSelectedListener काम करने के लिए प्रतीत नहीं हुआ। जब मैं आइटम का चयन करता हूं तो कुछ भी नहीं होता है। लॉग फियर नहीं करता है। मैं जानना चाहता हूं कि मैंने कुछ गलती की है या मैं गलत तरीके से जा रहा हूं।autocompletetextview setonitemselectedlistener

AutoCompleteTextView inputEmail; 
inputEmail = (AutoCompleteTextView) findViewById(R.id.loginEmail); 
inputEmail.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Set<String> keys = prefs.getAll().keySet(); 
       emails.clear(); 

       if (keys.size() != 0) { 
        emails.addAll(keys); 
       } else 
        emails.add(""); 

       inputEmail.setAdapter(adapter); 

       email = inputEmail.getText().toString(); 

      } 

     }); 
inputEmail.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       email = inputEmail.getText().toString(); 
       password = prefs.getString(email, ""); 
       Log.d(email + " "+password, "email+password"); 
       if (password.length() > 1) { 
        inputPassword.setText(password); 
       } 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 

     }); 
+0

यह एंड्रॉइड पर एक बग दिखता है। फ्रेमवर्क कोड की जांच करने पर, पंजीकृत कॉलबैक का कभी भी उपयोग नहीं किया जाता है। शायद आप एक बग रिपोर्ट दर्ज कर सकते हैं – nandeesh

उत्तर

41

यह इस question

का डुप्लिकेट आप AdapterView.OnItemClickListener() नहीं OnItemSelectedListener उपयोग करने की आवश्यकता है, हालांकि।

मैंने निम्नलिखित कोड स्निपेट का उपयोग करके सफलतापूर्वक इसका परीक्षण किया। एडाप्टर सामान के लिए Vogella पर क्रेडिट।

AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autocomplete_textview); 

    String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
      "Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", 
      "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2", 
      "Android", "iPhone", "WindowsMobile" }; 

    ArrayList<String> list = new ArrayList<String>(); 
    for (int i = 0; i < values.length; ++i) { 
     list.add(values[i]); 
    } 
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, list); 
    actv.setAdapter(adapter); 

    actv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      Toast.makeText(MainActivity.this, 
        adapter.getItem(position).toString(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
2
autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String selectedItem=autoCompleteTextView.getAdapter().getItem(position).toString(); 
      Toast.makeText(getApplicationContext(),selectedItem , Toast.LENGTH_SHORT).show(); 
     } 
    }); 

बस AutoCompleteTextView के एडाप्टर हो और स्थिति का उपयोग करें।

0

setOnItemClickListener का उपयोग करें और setOnItemSlectedListener का उपयोग न करें। चयनित मान लाने के लिए अपने कस्टम एडाप्टर ऑब्जेक्ट का भी उपयोग करें।

prodNameAutoCompTxt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 


       @Override 
       public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
        //Don't use this method 
       } 

       @Override 
       public void onNothingSelected(AdapterView<?> adapterView) { 
        System.out.println("Nothing selected"); 
       } 
      }); 
      prodNameAutoCompTxt.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
        //Use this method 
        Product prodObj=(Product) prodAutoAdapter.getItem(i); 
        new UomSynch().execute(prodObj.getProdID()); 
       } 
      }); 
संबंधित मुद्दे