2012-12-31 30 views
-2

我的问题是这样的: 我在EditText中输入文本,然后显示每个单独的字母,但可以使用2个ImageView进行显示。 我对ImageView没有任何问题,问题是当你输入单词到for,试图延迟显示第一个字母并继续与其他人,但它不起作用,只是发送给我的最后一个字母字输入Android中的循环,单词和图像

代码:

public class deletreo extends Activity { 

    TextView tv; 
    EditText etxt; 
    ImageView img,img2; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.deletreo); 

     tv = new TextView(this); 
     etxt = (EditText)findViewById(R.id.text); 
     Button btn = (Button)findViewById(R.id.btn7); 

     btn.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       letra(); 

      } 
     }); 



    }//fin bundle 





    public void letra() { 

     String t = ""; 

     t = etxt.getText().toString(); 
     String l = t.toLowerCase(); 
     int p = l.length(); 


      try{ 
       for(int j = 0 ; j < p ; j++){ 


        if(l.charAt(j) == 'a' || l.charAt(j) == 'A'){ 
         img = (ImageView)findViewById(R.id.img); 
         img.setImageResource(R.drawable.aa); 
         img2 = (ImageView)findViewById(R.id.img2); 
         img2.setImageResource(R.drawable.image_1); 

        } 

         if(l.charAt(j) == 'b' || l.charAt(j) == 'B'){ 
          img = (ImageView)findViewById(R.id.img); 
          img.setImageResource(R.drawable.bb); 
          img2 = (ImageView)findViewById(R.id.img2); 
          img2.setImageResource(R.drawable.image_2); 

         } 
          if(l.charAt(j) == 'c' || l.charAt(j) == 'C'){ 
           img = (ImageView)findViewById(R.id.img); 
           img.setImageResource(R.drawable.cc); 
           img2 = (ImageView)findViewById(R.id.img2); 
           img2.setImageResource(R.drawable.image_3); 

          } 
           if(l.charAt(j) == 'd' || l.charAt(j) == 'D'){ 
            img = (ImageView)findViewById(R.id.img); 
            img.setImageResource(R.drawable.dd); 
            img2 = (ImageView)findViewById(R.id.img2); 
            img2.setImageResource(R.drawable.image_4); 
           } 
            if(t.charAt(j) == 'e' || t.charAt(j) == 'E'){ 
             img = (ImageView)findViewById(R.id.img); 
             img.setImageResource(R.drawable.ee); 
             img2 = (ImageView)findViewById(R.id.img2); 
             img2.setImageResource(R.drawable.image_5); 
            } 
             if(t.charAt(j) == 'f' || t.charAt(j) == 'F'){ 
              img = (ImageView)findViewById(R.id.img); 
              img.setImageResource(R.drawable.ff); 
              img2 = (ImageView)findViewById(R.id.img2); 
              img2.setImageResource(R.drawable.image_6); 
             } 
              if(t.charAt(j) == 'g' || t.charAt(j) == 'G'){ 
               img = (ImageView)findViewById(R.id.img); 
               img.setImageResource(R.drawable.gg); 
               img2 = (ImageView)findViewById(R.id.img2); 
               img2.setImageResource(R.drawable.image_7); 
              } 
               if(t.charAt(j) == 'h' || t.charAt(j) == 'H'){ 
                img = (ImageView)findViewById(R.id.img); 
                img.setImageResource(R.drawable.hh); 
                img2 = (ImageView)findViewById(R.id.img2); 
                img2.setImageResource(R.drawable.image_8); 
               } 
                if(t.charAt(j) == 'i' || t.charAt(j) == 'I'){ 
                 img = (ImageView)findViewById(R.id.img); 
                 img.setImageResource(R.drawable.ii); 
                 img2 = (ImageView)findViewById(R.id.img2); 
                 img2.setImageResource(R.drawable.image_9); 
                } 
                 if(t.charAt(j) == 'j' || t.charAt(j) == 'J'){ 
                  img = (ImageView)findViewById(R.id.img); 
                  img.setImageResource(R.drawable.jj); 
                  img2 = (ImageView)findViewById(R.id.img2); 
                  img2.setImageResource(R.drawable.image_10); 
                 } 
                  if(t.charAt(j) == 'k' || t.charAt(j) == 'K'){ 
                   img = (ImageView)findViewById(R.id.img); 
                   img.setImageResource(R.drawable.kk); 
                   img2 = (ImageView)findViewById(R.id.img2); 
                   img2.setImageResource(R.drawable.image_11); 
                  } 
                   if(t.charAt(j) == 'l' || t.charAt(j) == 'L'){ 
                    img = (ImageView)findViewById(R.id.img); 
                    img.setImageResource(R.drawable.ll); 
                    img2 = (ImageView)findViewById(R.id.img2); 
                    img2.setImageResource(R.drawable.image_12); 
                   } 
                    if(t.charAt(j) == 'm' || t.charAt(j) == 'M'){ 
                     img = (ImageView)findViewById(R.id.img); 
                     img.setImageResource(R.drawable.mm); 
                     img2 = (ImageView)findViewById(R.id.img2); 
                     img2.setImageResource(R.drawable.image_13); 
                    } 
                     if(t.charAt(j) == 'n' || t.charAt(j) == 'N'){ 
                      img = (ImageView)findViewById(R.id.img); 
                      img.setImageResource(R.drawable.nn); 
                      img2 = (ImageView)findViewById(R.id.img2); 
                      img2.setImageResource(R.drawable.image_14); 
                     } 
                      if(t.charAt(j) == 'ñ' || t.charAt(j) == 'Ñ'){ 
                       img = (ImageView)findViewById(R.id.img); 
                       img.setImageResource(R.drawable.nini); 
                       img2 = (ImageView)findViewById(R.id.img2); 
                       img2.setImageResource(R.drawable.image_15); 
                      } 
                       if(t.charAt(j) == 'o' || t.charAt(j) == 'O'){ 
                        img = (ImageView)findViewById(R.id.img); 
                        img.setImageResource(R.drawable.oo); 
                        img2 = (ImageView)findViewById(R.id.img2); 
                        img2.setImageResource(R.drawable.image_16); 
                       } 
                        if(t.charAt(j) == 'p' || t.charAt(j) == 'P'){ 
                         img = (ImageView)findViewById(R.id.img); 
                         img.setImageResource(R.drawable.pp); 
                         img2 = (ImageView)findViewById(R.id.img2); 
                         img2.setImageResource(R.drawable.image_17); 
                        } 
                         if(t.charAt(j) == 'q' || t.charAt(j) == 'Q'){ 
                          img = (ImageView)findViewById(R.id.img); 
                          img.setImageResource(R.drawable.qq); 
                          img2 = (ImageView)findViewById(R.id.img2); 
                          img2.setImageResource(R.drawable.image_18); 
                         } 
                          if(t.charAt(j) == 'r' || t.charAt(j) == 'R'){ 
                           img = (ImageView)findViewById(R.id.img); 
                           img.setImageResource(R.drawable.rr); 
                           img2 = (ImageView)findViewById(R.id.img2); 
                           img2.setImageResource(R.drawable.image_19); 
                          } 
                           if(t.charAt(j) == 's' || t.charAt(j) == 'S'){ 
                            img = (ImageView)findViewById(R.id.img); 
                            img.setImageResource(R.drawable.ss); 
                            img2 = (ImageView)findViewById(R.id.img2); 
                            img2.setImageResource(R.drawable.image_20); 
                           } 
                            if(t.charAt(j) == 't' || t.charAt(j) == 'T'){ 
                             img = (ImageView)findViewById(R.id.img); 
                             img.setImageResource(R.drawable.tt); 
                             img2 = (ImageView)findViewById(R.id.img2); 
                             img2.setImageResource(R.drawable.image_21); 
                            } 
                             if(t.charAt(j) == 'u' || t.charAt(j) == 'U'){ 
                              img = (ImageView)findViewById(R.id.img); 
                              img.setImageResource(R.drawable.uu); 
                              img2 = (ImageView)findViewById(R.id.img2); 
                              img2.setImageResource(R.drawable.image_22); 
                             } 
                              if(t.charAt(j) == 'v' || t.charAt(j) == 'V'){ 
                               img = (ImageView)findViewById(R.id.img); 
                               img.setImageResource(R.drawable.vv); 
                               img2 = (ImageView)findViewById(R.id.img2); 
                               img2.setImageResource(R.drawable.image_23); 
                              } 
                               if(t.charAt(j) == 'w' || t.charAt(j) == 'W'){ 
                                img = (ImageView)findViewById(R.id.img); 
                                img.setImageResource(R.drawable.ww); 
                                img2 = (ImageView)findViewById(R.id.img2); 
                                img2.setImageResource(R.drawable.image_24); 
                               } 
                                if(t.charAt(j) == 'x' || t.charAt(j) == 'X'){ 
                                 img = (ImageView)findViewById(R.id.img); 
                                 img.setImageResource(R.drawable.xx); 
                                 img2 = (ImageView)findViewById(R.id.img2); 
                                 img2.setImageResource(R.drawable.image_25); 
                                } 
                                 if(t.charAt(j) == 'y' || t.charAt(j) == 'Y'){ 
                                  img = (ImageView)findViewById(R.id.img); 
                                  img.setImageResource(R.drawable.yy); 
                                  img2 = (ImageView)findViewById(R.id.img2); 
                                  img2.setImageResource(R.drawable.image_26); 
                                 } 
                                  if(t.charAt(j) == 'z' || t.charAt(j) == 'Z'){ 
                                   img = (ImageView)findViewById(R.id.img); 
                                   img.setImageResource(R.drawable.zz); 
                                   img2 = (ImageView)findViewById(R.id.img2); 
                                   img2.setImageResource(R.drawable.image_27); 

                                  } 

          Thread.sleep(2000);                                                 
       }//fin del for 

      }//fin try 

      catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      finally{} 


    }//fin letra(); 



}//fin 
+0

这是很多代码。你可以使用调试器(甚至是日志语句)来缩小问题的范围吗? –

+0

对于您的巨大级联'if/else'语句,您应该使用'switch'语句。它将更加清洁和高效。 – Michael

+0

它是,只是在哪里代码,如果它只是比较在EditText中输入的字母,我甚至没有改变,通过切换到一些严重 – DiegoF

回答

0

你会希望把这个动作在一个单独的线程,然后用Handler暂停和恢复你刚刚创造了这个新的线程。这样做是为了不冻结主UI线程,这是Android默认运行的东西。

我用Google搜索“Android的附加延迟其间的变化”,并得到了一堆的结果,其中一个是这样的:Add a delay to Progress Dialog

此外,使用switch语句,而不是你的巨人级联if/else语句。它会让你的代码更加干净和高效。

+0

有人想告诉我为什么我错了,而不是只是downvoting我?它对我没有帮助,它对OP没有帮助。 – Michael

+0

我试过了你建议的方式,制作一个单独的线程,并且我得到了相同的结果,我尝试了4种不同的线程方式,但我无法工作 – DiegoF

+0

那么你做错了。 Google'如何在android中进行多线程'。 – Michael

1

下降for循环的底部你拨打:

Thread.sleep(2000); 

这只会阻塞UI线程为2秒。由于UI线程基本上是应用程序的生命线,因此上述语句将停止执行代码全部。如果阻塞主线程,循环外的代码不会奇迹般地继续运行,这就是为什么您的UI在每次迭代后都不会更新的原因。

在与螺纹直接交互代替,它可能更容易发布延迟RunnableHandler或使用模拟“滴答”一些其他机制(例如TimerTimerTaskCountDownTimer浮现在脑海中)。随着每一个滴答,你可以显示下一个字符。

+0

我试图如下: 公共无效letra(){ \t \t 串T = “”; \t \t \t t = etxt.getText()。toString(); \t \t String l = t.toLowerCase(); \t int p = 1。长度(); \t \t \t \t \t尝试{ \t \t \t \t对(INT J = 0;Ĵ DiegoF

+1

@DiegoF:很抱歉,但我不知道在(相当混乱)的代码在您的评论改变。尽管如此,我仍然可以看到'Thread.sleep(2000)',这实际上是你应该摆脱的。 –

+0

对不起,我认为它可能看起来不错,我已经做了for循环的结尾是把Thread.sleep(2000)暂停2秒,所以它不工作,是我试图做的 – DiegoF