Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >文本出现在进度栏- Android之后。

文本出现在进度栏- Android之后。
EN

Stack Overflow用户
提问于 2014-03-10 10:58:24
回答 1查看 405关注 0票数 0

我正在使用android中的进度条,并希望在进度条运行后出现我的文本。但我的短信同时出现。显然是在错误的地方?但它应该在哪里呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.bmi;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends Activity {
    private ProgressBar progressBar;
    private int progressStatus = 0;
    private Handler handler = new Handler ();
    //private TextView textView;

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


    }


    public void calculateClickHandler(View view) {

        if (view.getId() == R.id.button1) {

            progressBar = (ProgressBar) findViewById(R.id.progressBar1);
            //textView = (TextView) findViewById(R.id.textView1);
              // Start long running operation in a background thread
              new Thread(new Runnable() {
                 public void run() {
                    while (progressStatus < 100) {
                       progressStatus += 1;
                            // Update the progress bar and display the 
                            //current value in the text view
                            handler.post(new Runnable() {


                                        public void run() {
                                           progressBar.setProgress(progressStatus);
                                           //textView.setText(progressStatus+"/"+progressBar.getMax());
                                        }
                            });



                              try {
                                // Sleep for 200 milliseconds. 
                                //Just to display the progress slowly
                                Thread.sleep(50);
                              } catch (InterruptedException e) {
                                  e.printStackTrace();
                                }
                 }


              }
           }).start();

              EditText weightText = (EditText) findViewById(R.id.editText1);
                EditText heightText = (EditText) findViewById(R.id.editText2);
                TextView result = (TextView) findViewById(R.id.textView4);

                float weight = Float.parseFloat(weightText.getText().toString());
                float height = Float.parseFloat(heightText.getText().toString());

                float bmi = calcBMI(weight, height);
                float roundedbmi = (float) (Math.round(bmi*100.0)/100.0);

                String yoFat = fat(roundedbmi);

                result.setText("Your BMI is: " + roundedbmi + "\n" + yoFat); 


        }

    }


    private float calcBMI(float weight, float height) {
        // TODO Auto-generated method stub
        return (float) (weight / (height * height));
    }


    private String fat (float bmi) {
        if (bmi < 16) {
            return "Yo Skinny ass needs some cake!";
        }
        else if (bmi < 18.5) {
            return "Stop eating them salads!";
        }
        else if (bmi < 25) {
            return "Grrrr, Just the way I like it!";
        }
        else if (bmi < 30) {
            return "Put down that cupcake!";
        }
        else {
            return "Ohh you Fat, You love the cake!";
        }
    }

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

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 12:26:15

直接在实例化线程下面的代码不会等待线程在执行之前完成其可运行性。

相反,在新线程可运行的末尾重新输入UI线程并设置文本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    new Thread(new Runnable() {
        @Override
        public void run() {
            while (progressStatus < 100) {
                // Progress update...
            }

            // Progress finished, re-enter UI thread and set text
            handler.post(new Runnable() {
                @Override
                public void run() {
                    EditText weightText = (EditText) findViewById(R.id.editText1);
                    EditText heightText = (EditText) findViewById(R.id.editText2);
                    TextView result = (TextView) findViewById(R.id.textView4);

                    float weight = Float.parseFloat(weightText.getText().toString());
                    float height = Float.parseFloat(heightText.getText().toString());

                    float bmi = calcBMI(weight, height);
                    float roundedbmi = (float) (Math.round(bmi*100.0)/100.0);

                    String yoFat = fat(roundedbmi);

                    result.setText("Your BMI is: " + roundedbmi + "\n" + yoFat);
                }
            });
        }
    }).start();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22308922

复制
相关文章
android中开启ProgressDialog进度条之后,屏蔽返回按键。
之前一直再想按下触摸屏或者回退键,就会立马关闭进度条。但是,项目有需要,必须在进度条结束之后,才能按下回退键。
程思扬
2022/01/10
5600
WPF任务栏同步进度
本篇文章主要分享使用TaskbarItemInfo对象(WPF)在window操作系统的任务栏中同步任务进度的功能。
JusterZhu
2022/12/07
5120
WPF任务栏同步进度
android进度条
为者败之,执者失之。——《道德经》 原生安卓实现的进度条 package com.example.uidemo.activity; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ProgressBar; import android.widget.SeekBar; import android.wi
阿超
2022/08/16
1.9K0
Qt创建任务栏进度条
    任务栏进度条是Windows7就引入的一种UI形式,通常用于显示软件当前正在执行的任务的进度(如编译程序的进度、下载任务的进度)。如下:
24K纯开源
2018/12/26
1.9K0
TabLayout用法,android顶部导航栏,android底部导航栏
TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航。类似于这样的,能设置选中时字体的颜色和选中时的图片。
天涯泪小武
2019/01/17
4.1K0
ios7之后导航栏的问题2
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53334755
用户1451823
2018/09/13
8530
ios7之后导航栏的问题2
Android圆形进度条
圆形进度条.jpg 先在attrs.xml中自定义属性 <declare-styleable name="CircleProgressBar"> <attr name="backgroundColor" format="color" /> <attr name="progressColor" format="color" /> <attr name="progressWidth" format="dimension" /> <attr
aruba
2020/07/03
8700
Android圆形进度条
App更新策略课程-实现通知栏进度更新
上节课给大家介绍了如何实现下载进度更新,本节课将会给大家介绍如何实现通知栏消息提醒和通知栏的下载进度更新,如果还没有学习前面的课程的同学可以先学习前面内容: App更新策略课程-检查更新实现 App更
巫山老妖
2018/07/20
7990
ios7之后导航栏的问题1
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53333748
用户1451823
2018/09/13
4370
ios7之后导航栏的问题1
Android – 环形进度条
环形进度条 ring_circle_progress.gif 如上图所示,之所以想到写这个,因为项目中有这样的需求,所以自己就去琢磨琢磨该怎么去实现这个需求。 实现思路: ① 画个圆弧 ② 圆弧
code_horse
2018/07/02
1.2K0
android ProgressBar(进度条)
本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;或者当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会以为程序Carsh或者手机死机 了,这样会大大降低用户体验,所以在需要进行耗时操作的地方,添加上进度条,让用户知道当前的程序 在执行中,也可以直观的告诉用户当前任务的执行进度等!使用进度条可以给我带来这样的便利! 好了,开始讲解本节内容~ 对了,ProgressBar官方API文档:ProgressBar
233333
2021/04/09
1.4K0
android ProgressBar(进度条)
如何使用python实现文本进度条?
大多数人都是喜欢有掌控感的,不管是做事情还是学东西,都希望了解的多一点。如果没有掌控感,你就容易慌,焦虑急躁。其实这是很正常的一种心理,利用好可以变成一种正向驱动力。
叶子陪你玩
2020/04/23
1.7K0
如何使用python实现文本进度条?
如何用Python写个文本进度条?
程序员Bob(ID:gh_8a1a1530d0bf) 第218次推文 图源:小张
小Bob来啦
2020/12/15
1.4K0
如何用Python写个文本进度条?
2017,那些出现在日记中的人:简单的文本挖掘
终于做出这张图时,我突然有点感慨,这就是2017年我的日记中提到过或记录过的一个个人名,当然为避免引起不必要的麻烦,隐去了许多亲人朋友的名字。想到一辈子说长也长,说短的话,几十张词云图也就概括了那些人与事。曾经朝夕相处、相识相知的人,或许早已渐行渐远了,二三老友谈起故人往事才发现死活想不起某某同学姓甚名谁,遗忘总是发生在不知不觉间,有时候连自己都不知道究竟忘记了什么。
古柳_DesertsX
2018/08/21
4210
2017,那些出现在日记中的人:简单的文本挖掘
android去掉标题栏
自由不是让你想做什么就做什么,自由是教你不想做什么,就可以不做什么。——康德 在Activity里加上 //去掉标题栏 getSupportActionBar().hide(); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 注意位置是在setContentView前
阿超
2022/08/16
7540
android去掉标题栏
[ WEB ] 从地址栏输入 URL 之后发生了啥?
在输入地址栏之前,浏览器会对输入的内容进行检查,如果是一个符合格式的正确 url 就会执行 DNS解析,如果不是,比如输入了一些字符串,那么就会执行搜索功能。如图:
GavinUI
2021/04/12
1.3K0
[ WEB ] 从地址栏输入 URL 之后发生了啥?
点击加载更多

相似问题

进度栏中的Android文本视图

10

Android:加载进度栏

23

分段进度栏android

14

Android :半圆进度栏

61

加载Android进度栏

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文