5

किसी तरह यह काम नहीं करता, मेरे हिसाब से यह इस होना चाहिए:runOnUiThread (नई Runnable() {विराम चिह्न (टोकन) मुद्दा

public void Splash(){ 
    Timer timer= new Timer(); 

    timer.schedule(new TimerTask(){ 

    MexGame.this.runOnUiThread(new Runnable() { 

     public void run(){ 
     SplashImage.setImageDrawable(aktieknop); 
     } //Closes run() 

     }); //Closes runOnUiThread((){}) 

    },SplashTime); //Closes the Timeratask((){}) 

} //closes Splash() 

किसी किसी भी विचार है जहाँ मैं कुछ याद कर रहा हूँ

फॉर्मल कमेंट मुझे मूर्खतापूर्ण समस्या पता है, या शायद मैं कुछ असंभव कर रहा हूं, लेकिन मैंने सभी तार्किक संभावनाओं को आजमाया। तो शायद कुछ याद आ रहा है या मैं कुछ ऐसा करने की कोशिश कर रहा हूं जो संभव नहीं है। क्या आप कृपया मदद कर सकते हैं मुझे बाहर। मैं फॉलोि का उपयोग करने की कोशिश कर रहा हूं एनजी कोड, लेकिन उस टोकन मुद्दों देता है:

Timer timer= new Timer(); 
    timer.schedule(new TimerTask(){ 

    runOnUiThread(new Runnable() { 

     public void run(){ 
     SplashImage.setImageDrawable(aktieknop);} 

     });} 

    },SplashTime); 

अगर मैं runOnUiThread यह दुर्घटनाओं के बाद से मैं, किसी को भी किसी भी विचार एक और धागे से यूआई अनुकूल करने के लिए कोशिश कर रहा हूँ, लेकिन कम से कम कोई टोकन मुद्दे को रोकने ?:

Timer timer= new Timer(); 


    timer.schedule(new TimerTask(){ 

// runOnUiThread(new Runnable() { 

     public void run(){ 
     SplashImage.setImageDrawable(aktieknop);} 

    // });} 

    },SplashTime); 
+0

आप Activity_name.this.runOnUiThread (...) उपयोग करने की कोशिश की है? –

+0

हाय ललित, एक ही मुद्दा देता है, ग्रहण मुझे टिप्पणी देता है कि मुझे जोड़ना या निकालना चाहिए; और} {आदि। चीजों के बिना टिप्पणी को अवरुद्ध करने के बाद मुझे अंत में timer.schedule और SplashTime के साथ लाइन मिलती है। ऐसा लगता है कि एक्लिप्स टाइमर टास्क को पहचान नहीं लेता है जब runOnUiThread जोड़ा जाता है .. – Diego

उत्तर

9

दोनों TimerTask और Runnable एक रन विधि को लागू करने की आवश्यकता है, तो आप दो run तरीकों की आवश्यकता होगी।

यदि आप टाइमरटास्क के निर्माण से रननेबल के निर्माण को अलग करते हैं तो भी आपका कोड पढ़ने में आसान होगा।

final Runnable setImageRunnable = new Runnable() { 
     public void run() { 
      splashImage.setImageDrawable(aktieknop); 
     } 
    }; 

    TimerTask task = new TimerTask(){ 
     public void run() { 
      getActivity().runOnUiThread(setImageRunnable); 
     } 
    }; 

    Timer timer = new Timer(); 
    timer.schedule(task, splashTime); 
+0

+, मुझे 'टाइमरटास्क 'के लिए' रन()' की कमी याद आई – Vladimir

1

आप अतिरिक्त "}" SplashTime से पहले की है। आपने एक ओपनिंग "{" और दो बंद "}" पर टिप्पणी की है, इसलिए आपके मूल कोड में एक अनिश्चित "}" है।

Timer timer= new Timer(); 
timer.schedule(new TimerTask(){ 
     runOnUiThread(new Runnable() { 
      public void run(){ 
       SplashImage.setImageDrawable(aktieknop); 
      } //closes run(){}   
     });  //closes runOnUiThread(Runnable(){ }); 
    },   //closes TimerTask(){} 
    SplashTime);