android progressBar does not update progress view/drawable

后端 未结 15 2321
悲哀的现实
悲哀的现实 2020-11-28 09:11

two Bars which shows the progress of a game. If the user get points or time is up etc the progressBars should be updated:

private TextView tv;
private Progre         


        
15条回答
  •  佛祖请我去吃肉
    2020-11-28 09:58

    This worked for me...

    OneFragmen.java

    public class OneFragment extends Fragment{
    
    public OneFragment() {
        // Required empty public constructor
    }
    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    
    int progress=0;
    private Handler handler = new Handler();
    TextView txtProgress;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    
    @Override
    public View onCreateView(
        LayoutInflater inflater, 
        ViewGroup container,
        Bundle savedInstanceState ) {
    
       View view =  inflater.inflate(R.layout.fragment_one, container, false);
        getActivity().setTitle(R.string.app_name);
    
       final ProgressBar spinner = 
           (ProgressBar) view.findViewById(R.id.outerProgressBar);
        Resources res = getResources();
        Drawable drawable = res.getDrawable(R.drawable.circular);
        txtProgress = (TextView)view.findViewById(R.id.txtProgress);
        spinner.setProgressDrawable(drawable);
        spinner.setSecondaryProgress(100);
        spinner.setMax(100);
        spinner.setProgress(0);
    
        new Thread(new Runnable() {
    
            @Override
            public void run() {
                while (progress < 100) {
                    progress += 1;
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            spinner.setProgress(progress);
                            txtProgress.setText(progress + "%");
                        }
                    });
                    try {
                        Thread.sleep(28);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
        return view;
      }
    }
    

提交回复
热议问题