2011-12-03 25 views
13

सोने के लिए मेरे प्रोग्राम को प्राप्त करने में कुछ समस्या होने पर बीटीएन स्टार्ट दबाया जाता है जब frs यादृच्छिक रूप से 12 छविबटन पर चित्र सेट करता है तो मैं इसे 5 सेकंड के लिए रोकना चाहता हूं और फिर पहले को बदलना चाहता हूं एक और तस्वीरएंड्रॉइड प्रोग्राम में स्लीप फ़ंक्शन

मेरे कोड इस तरह दिखता है, अभी यह सीधे जब बटन दबाने रुक जाता है ...

 btnStart.setOnClickListener(new View.OnClickListener() { 
     @Override 

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

      Collections.shuffle(pic); 
      int time=1; 
      press=true; 

      pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.memgreen)); 
      pic.get(1).setImageDrawable(getResources().getDrawable(R.drawable.memgreen)); 
      pic.get(2).setImageDrawable(getResources().getDrawable(R.drawable.memred)); 
      pic.get(3).setImageDrawable(getResources().getDrawable(R.drawable.memred)); 
      pic.get(4).setImageDrawable(getResources().getDrawable(R.drawable.memblue)); 
      pic.get(5).setImageDrawable(getResources().getDrawable(R.drawable.memblue)); 
      pic.get(6).setImageDrawable(getResources().getDrawable(R.drawable.memwhite)); 
      pic.get(7).setImageDrawable(getResources().getDrawable(R.drawable.memwhite)); 
      pic.get(8).setImageDrawable(getResources().getDrawable(R.drawable.mempurple)); 
      pic.get(9).setImageDrawable(getResources().getDrawable(R.drawable.mempurple)); 
      pic.get(10).setImageDrawable(getResources().getDrawable(R.drawable.memyellow)); 
      pic.get(11).setImageDrawable(getResources().getDrawable(R.drawable.memyellow)); 

      try { 
       Thread.sleep(5000); 

       pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin)); 

      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
    } 
    }); 
+0

पर देखने योग्य दृश्य को बदलने के लिए विधि चलाएं और समस्या क्या है? – GETah

उत्तर

22

ठीक है, अगर तुम यूआई चाहते उत्तरदायी रहने के लिए आप नहीं कर सकते ब्लॉक करने के लिए ImageButton वहां यूआई थ्रेड Thread.sleep के साथ।

नया धागा बनाएं, फिर इसे सोएं। नींद के बाद, यूआई थ्रेड

new Thread(new Runnable() { 
    @Override 
    public void run() { 
     try { 
      Thread.sleep(5000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin)); 
      } 
     }); 
    } 
}).start(); 
+2

या AsyncTask का उपयोग करें: http://android-developers.blogspot.com/2009/05/painless-threading.html –

+0

धन्यवाद! मैं इसके लिए नया हूं लेकिन यह सही समझ में आता है। अब काम करता है :) – Fredkr