2012-12-13 2 views
0

내 안드로이드 용 타이머 응용 프로그램을 만들고 있습니다. 지정된 시간 (예 : 8 분)부터 0까지 카운트 다운합니다.클릭하면 텍스트 뷰 필드가 깜박임을 멈추는 방법

앱을 시작할 때 지정된 시간이 표시된다는 것을 코딩했습니다. 시간을 표시하는 TextView을 클릭하면 카운트 다운이 시작되어 TextViewonTick() 이벤트로 업데이트합니다. TextView을 다시 클릭하면 다음 번에 TextView을 클릭하면 카운트 다운이 중지되고 남은 시간 (밀리 초)을 다시 시작하여 본질적으로 시계를 일시 중지합니다.

모든 것이 예상대로 작동합니다. 그러나 TextView을 클릭하면 클릭이 해제 될 때까지 사라집니다. 클릭을 3 초 동안 누르고 있으면 TextView이 완전히 사라지고 해제되자 마자 다시 나타납니다.

전체 시간에 TextView의 값을 계속 표시하려면 어떻게해야합니까?

편집 :

tvPeriod.setOnLongClickListener(new View.OnLongClickListener() {   
     @Override 
     public boolean onLongClick(View v) { 
      valPeriod = 1; 
      tvPeriod.setText(tvPeriodPrefix + "1"); 

      return true; 
     } 
    }); 
+0

여기에 일부 코드를 입력하십시오. –

+0

@AliImran - 요청한대로 코드를 추가했습니다. 요소를 클릭 할 때 내가하는 것처럼 보이더라도 사라지고 다시 놓을 때 다시 나타납니다. –

답변

0

당신은 아마 설정 한 색으로 배경, 또는 투명 뭔가를 할 수 있습니다. 실제로 하위 레벨에서 Button은 TextView의 자손이므로 Button과 같은 역할을 할 수 있습니다.

+0

배경은 무엇입니까? 텍스트 뷰를 클릭하면 텍스트 뷰가 완전히 사라집니다. 일단 클릭을 놓으면 다시 나타납니다. 그래서 배경은? 무언가가 클릭 될 때 다른 배경이 설정 되었습니까? –

0

이 샘플 코드를 사용해보십시오.

import android.os.Bundle; 
import android.os.CountDownTimer; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.TextView; 

public class MainActivity extends Activity { 
    TextView tv; 
    CountDownTimer countDownTimer; 
    boolean isRunning = false; 
    long remainingTime = 90000; 
    long elapsedTime = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     tv = (TextView) findViewById(R.id.tv1); 
     tv.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if (isRunning) { 
        isRunning = false; 
        countDownTimer.cancel(); 
        remainingTime = elapsedTime; 
       } else { 
        countDownTimer = new CountDownTimer(remainingTime, 1000) { 

         public void onTick(long millisUntilFinished) { 
          elapsedTime = millisUntilFinished; 
          tv.setText("seconds remaining: " 
            + millisUntilFinished/1000); 

         } 

         public void onFinish() { 
          tv.setText("done!"); 
         } 
        }.start(); 
        isRunning = true; 
       } 

      } 
     }); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 
관련 문제