このウェブサイトは最高です。私はとても役に立ちます...私はAndroid appcationの作成の初心者です。ここで質問するのはこれが初めてです..私の質問は、テキストビューを5秒間だけ表示して非表示にする方法です..検索すると、いくつかのコードが見つかりましたが、使用方法がわかりませんでした。それは間違った方法で..だから、誰かが私にそれを行う方法の非常に簡単な例を教えてもらえますか?? 私は本当にあなたの助けに感謝します......>>(テキストが消えたくない、穴のテキストビューが消えてほしい)
質問する
15762 次
6 に答える
12
AsyncTask の使用:
new AsyncTask<Void, Void, Void>()
{
protected Void doInBackground(Void... params)
{
Thread.sleep(5000); // sleep 5 seconds
}
protected void onPostExecute (Void result)
{
// fade out view nicely
AlphaAnimation alphaAnim = new AlphaAnimation(1.0f,0.0f);
alphaAnim.setDuration(400);
alphaAnim.setAnimationListener(new AnimationListener()
{
public void onAnimationEnd(Animation animation)
{
// make invisible when animation completes, you could also remove the view from the layout
myTextView.setVisibility(View.INVISIBLE);
}
});
myTextView.startAnimation(alphaAnim);
}
}.execute();
または、もっと良いのは、アニメーションを使用することです:
編集済み(@pkkの提案に感謝):
// fade out view nicely after 5 seconds
AlphaAnimation alphaAnim = new AlphaAnimation(1.0f,0.0f);
alphaAnim.setStartOffset(5000); // start in 5 seconds
alphaAnim.setDuration(400);
alphaAnim.setAnimationListener(new AnimationListener()
{
public void onAnimationEnd(Animation animation)
{
// make invisible when animation completes, you could also remove the view from the layout
myTextView.setVisibility(View.INVISIBLE);
}
});
myTextView.setAnimation(alphaAnim);
于 2013-06-21T19:43:32.060 に答える
6
タイマーを表示したい場合は、 CountDownTimerを使用するのが 1 つの方法です。
public void onCreate(...){
...
timer = new MyCountDown(5000, 1000);
}
private class MyCountDown extends CountDownTimer
{
long duration, interval;
public MyCountDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
start();
}
@Override
public void onFinish() {
textView1.setVisibility(View.INVISIBLE);
}
@Override
public void onTick(long duration) {
// could set text for a timer here
}
}
TimerTaskを使用することもできます。
ここに良い例を含むSOの答えがありますTimerTask
他にもいろいろな方法があります。ドキュメントまたはSOを検索して、ニーズに最適なものを決定できます
TimerTask
例で編集
Timer t = new Timer(false);
t.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
txt.setVisibility(View.INVISIBLE);
}
});
}
}, 5000);
于 2013-06-21T19:43:51.363 に答える
3
final TextView textView = new TextView(this);
// add textView on some Layout
textView.setText("Text or smth. from resource");
CountDownTimer timer = new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
textView .setVisibility(View.INVISIBLE); //(or GONE)
}
}.start();
于 2013-06-21T19:47:00.897 に答える
1
これを行うには、 HandlerとRunnableを使用できます。
public class MainActivity extends Activity {
private Handler h;
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(TextView)findViewById(R.id.txt);
Runnable r=new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Log.e("bf", "fd");
h.postDelayed(this, 500);
if (txt.isShown()){
txt.setVisibility(View.INVISIBLE);
}
else{
txt.setVisibility(View.VISIBLE);
}
}
};
h=new Handler();
h.post(r);
}
}
于 2013-06-21T20:25:07.420 に答える