2016-12-16 64 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; 
     } 
    });