2014-09-28 10 views
26

मेरे पास नेविगेशन ड्रॉवर का उपयोग करके एक एप्लिकेशन है जो स्थानों की सूची प्रदान करता है। दराज में, कई विकल्प हैं (जैसे देश, शहर, आदि चुनना) कि उपयोगकर्ता मुख्य गतिविधि में संबंधित सूची दिखाने से पहले सेटअप कर सकते हैं।दराज बंद श्रोता पर एंड्रॉइड

क्या उपयोगकर्ता ड्रॉवर बंद करते समय सूची को ताज़ा करने की कोई संभावना है, या शायद इसे हल करने का एक और तरीका है? मैंने ट्यूटोरियल्स की खोज करने की कोशिश की है लेकिन इस दराज बंद श्रोता के बारे में कुछ भी नहीं मिला है। कोई सुझाव उपयोगी होगा, धन्यवाद!

उत्तर

63

जब आप सेटअप ActionBarDrawerToggle आप कर सकते हैं "लागू"onDrawerClosed और onDrawerOpened कॉलबैक। Docs से निम्नलिखित उदाहरण देखें:

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
      R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { 

     /** Called when a drawer has settled in a completely closed state. */ 
     public void onDrawerClosed(View view) { 
      super.onDrawerClosed(view); 
      // Do whatever you want here 
     } 

     /** Called when a drawer has settled in a completely open state. */ 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
      // Do whatever you want here 
     } 
    }; 
// Set the drawer toggle as the DrawerListener 
mDrawerLayout.addDrawerListener(mDrawerToggle); 

संपादित करें: अब setDrawerListener हटाई गई है, addDrawerListener बजाय का उपयोग करें।

+0

ओएमजी, मैं पूरी तरह से इस बारे में भूल गया! याद दिलाने के लिए धन्यवाद! – rendyhihi

30

रीवर्स उत्तर सही है यदि आप एक्शनबार का उपयोग कर रहे हैं। मामले में आप सिर्फ सीधे DrawerLayout उपयोग करते हैं, आप इसे करने के लिए एक DrawerListener जोड़ सकते हैं:

के अनुसार kit's comment
View drawerView = findViewById(R.id.drawer_layout); 
if (drawerView != null && drawerView instanceof DrawerLayout) { 
    mDrawer = (DrawerLayout)drawerView; 
    mDrawer.setDrawerListener(new DrawerListener() { 
      @Override 
      public void onDrawerSlide(View view, float v) { 

      } 

      @Override 
      public void onDrawerOpened(View view) { 

      } 

      @Override 
      public void onDrawerClosed(View view) { 
       // your refresh code can be called from here 
      } 

      @Override 
      public void onDrawerStateChanged(int i) { 

      } 
     }); 
} 

, addDrawerListener() अब कि setDrawerListener() पदावनत किया गया है किया जाना चाहिए।

+8

यदि कोई इसे देखता है, तो 'setDrawerListener' को बहिष्कृत किया गया है। 'addDrawerListener' अब इस्तेमाल किया जाना चाहिए – kit

संबंधित मुद्दे