Android的 - 如何隐藏/显示进度的onclick进度、Android、onclick

2023-09-04 23:16:38 作者:跟你撒个娇

我想表现出进度被点击一个按钮时。当我测试的应用程序,它强制关闭/停止。我的应用程序正常工作前的进度code。在添加。

另外,我用一个切换按钮,如果使可能的问题,我想纺纱进度不是一个对话框。

任何帮助吗?

我在这里的code:

  @覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);
    按钮=(按钮)findViewById(R.id.buttonFlashlight);
    上下文的背景下=这一点;
    PackageManager下午= context.getPackageManager();


    如果(!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)){
        Log.e(犯错,设备没有摄像头!);
        返回;
    }

    相机= Camera.open();
    最终的参数P = camera.getParameters();

    button.setOnClickListener(新OnClickListener(){
        公共无效的onClick(查看为arg0){

            如果(isLighOn){

                progressBar1.setVisibility(View.INVISIBLE);

                最后的MediaPlayer MP1 = MediaPlayer.create(getBaseContext(),R.drawable.click);
                mp1.start();

                Log.i(信息,火炬被关闭!);
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(对);
                camera.stop preVIEW();
                isLighOn = FALSE;

                WindowManager.LayoutParams PARAMS = getWindow()的getAttributes()。
                params.screenBrightness = 1.0F;
                。getWindow()setAttributes(PARAMS);

            } 其他 {

                progressBar1.setVisibility(View.VISIBLE);

                最后的MediaPlayer MP1 = MediaPlayer.create(getBaseContext(),R.drawable.click);
                mp1.start();

                Log.i(信息,火炬被打开!);
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(对);
                camera.start preVIEW();
                isLighOn =真;

                WindowManager.LayoutParams PARAMS = getWindow()的getAttributes()。
                params.screenBrightness = 0.05f;
                。getWindow()setAttributes(PARAMS);
            }
        }
    });
    }
 

解决方案

试试下面的code ...

  handler1 =新的处理程序()
{
            @覆盖
            公共无效的handleMessage(信息MSG)
            {
                开关(msg.what)
                {
                情况1:
                    static_class.digi_pd = ProgressDialog.show(Create_Digitizing_Job.this,载入中...,请等待......,真,假);
                    static_class.digi_pd.setCancelable(假);
                    打破;
                案例2:
                    static_class.digi_pd.dismiss();
                    打破;

                }
            }
        };

        线程1 =新的Thread()
          {
                @覆盖
                公共无效的run()
                {
                       尝试
                        {


                          handler1.sendEmptyMessage(1);

                    //在这里写你的code ....

                         handler1.sendEmptyMessage(3);
                         handler1.sendEmptyMessage(2);

                        }
                       赶上(例外五)
                       {
                           Log.w(线程错误......,+ E);
                           //e.printStackTrace();
                       }

             }

         };
        thread1.start();
 

Android移动开发技术文章 手机开发

I am trying to show a progressbar when a button is clicked. When i test the app it force closes / stops. My app works fine before the progressbar code is added in.

also i am using a toggle button if that can matters, and i want the spinning progressbar not a dialog.

any help?

here my code:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    button = (Button) findViewById(R.id.buttonFlashlight);
    Context context = this;
    PackageManager pm = context.getPackageManager();


    if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
        Log.e("err", "Device has no camera!");
        return;
    }

    camera = Camera.open();
    final Parameters p = camera.getParameters();

    button.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) {

            if (isLighOn) {

                progressBar1.setVisibility(View.INVISIBLE);

                final MediaPlayer mp1=MediaPlayer.create(getBaseContext(), R.drawable.click);  
                mp1.start(); 

                Log.i("info", "torch is turn off!");
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.stopPreview();
                isLighOn = false;

                WindowManager.LayoutParams params = getWindow().getAttributes();
                params.screenBrightness = 1.0f;
                getWindow().setAttributes(params);

            } else {

                progressBar1.setVisibility(View.VISIBLE);

                final MediaPlayer mp1=MediaPlayer.create(getBaseContext(), R.drawable.click);  
                mp1.start(); 

                Log.i("info", "torch is turn on!");
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(p);
                camera.startPreview();
                isLighOn = true;

                WindowManager.LayoutParams params = getWindow().getAttributes();
                params.screenBrightness = 0.05f;
                getWindow().setAttributes(params);
            }
        }
    });
    }

解决方案

try following code...

handler1 = new Handler()
{
            @Override
            public void handleMessage(Message msg) 
            {
                switch(msg.what)
                {
                case 1:
                    static_class.digi_pd = ProgressDialog.show(Create_Digitizing_Job.this, "Loading...", "Please Wait..", true,false);
                    static_class.digi_pd.setCancelable(false);
                    break;
                case 2:
                    static_class.digi_pd.dismiss();
                    break;

                }
            }
        };

        thread1 = new Thread()
          {
                @Override
                public void run()
                {   
                       try
                        {  


                          handler1.sendEmptyMessage(1);

                    // write your code here....

                         handler1.sendEmptyMessage(3);
                         handler1.sendEmptyMessage(2);

                        } 
                       catch (Exception e) 
                       {
                           Log.w("thread error...",""+e);
                           //e.printStackTrace();
                       }   

             }

         };
        thread1.start();