2016-12-16 91 views
0

我正在计划一个界面,如视频播放背景和一些文字出现在它上面。我使用的是videoview和普通textiev和普通按钮。就像一个Spotify应用程序的介绍。Videoview开始后,setText表示无法正常工作

,所以我创建的视频开放

public void video_ac(String x){ 
    adres = null; 
    adres = Uri.parse("android.resource://" + getPackageName() 
      + "/" 
      + "raw/" +x); 

    videoView.setVideoURI(adres); 
    videoView.start(); 
} 

2种方法 为集文字

public void yazdir (String a, String b, String c) 
{ 
    ly.setVisibility(View.VISIBLE); 
    icerik_yazisi.setText(""); 
    icerik_yazisi.setCharacterDelay(150); 
    icerik_yazisi.animateText(a); 
    BT_olumlu.setText(b); 
    BT_olumsuz.setText(c); 
} 

这个代码在工作创造完美的方法,但它的按钮点击后监听器不工作。

 BT_olumlu.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      sorgula2(BT_olumlu.getText().toString()); 
      ly.setVisibility(View.GONE); 
     } 
    }) 

和我的方法:

public void sorgula2 (String sss){ 
    if (sss.equals("oyuna başla")){ 

     video_ac("abc"); 
     yazdir("yoldan geçen kamyonetn rengi hangisidir ..", "mavi tır " ,"sarı kamyonet"); 

    } 

    else if(sss.equals("sarı kamyonet")){ 

     video_ac("bca"); 
     videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mediaPlayer) { 
       yazdir(".. olay nerede gerçekleşmiş.", "otopark" ,"havalimanı"); 
      } 

     }); 

    } 

的问题是在显示视频进入无限循环,而不是和回采方法的setText从来没有在第一条件下工作,我只能显示videoview完整的方法文本。 (第二个条件)

回答

0

已解决,可能在未来,对某人有用,问题是onclick监听器。我已经改变它并解决了。

BT_olumlu.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      switch(event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        // PRESSED 
        return true; // if you want to handle the touch event 
       case MotionEvent.ACTION_UP: 
        // RELEASED 

        icerik_yazisi.setVisibility(View.INVISIBLE); 
        sorgula2(BT_olumlu.getText().toString()); 
        return true; // if you want to handle the touch event 
      } 
      return false; 
     } 
    });