繁体   English   中英

Android切换按钮点击设置textview

[英]Android toggle button click set textview

我是 android 开发的新手,我想在点击切换按钮时设置一个文本视图。 单击切换按钮时,会调用长度操作方法,因此在此之前我想设置一个 textview 说“服务正在启动”,但我注意到一旦切换按钮状态从 START 变为 STOP 和之后,就会设置 textview方法调用完成。

你能帮我在方法调用之前显示文本视图吗?

我已经处理了下面的代码。

@Override
protected void onResume() {
    super.onResume();
    Reader.getInstance(this,this);

    try {
        Thread.sleep(300);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }


    toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {

                textView.setVisibility(View.VISIBLE);

                Thread t = new Thread(){
                    public void run(){
                        startMyService();
                    }
                };
                t.start();

                try {
                    t.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                textView.setVisibility(View.GONE);                   

            }
            else {

                Thread t = new Thread(){
                    public void run(){
                        stopMyService();
                    }
                };
                t.start();
            }
        }
    });
}

谢谢。

我使用了以下代码,但单击切换按钮时没有显示任何内容。 我曾尝试将冗长的代码放在一个线程中,但即使在使用 thread.join 之后该方法也没有执行。

尝试这个:

    class startservice_AsyncTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
             textView.setVisibility(View.VISIBLE);

        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            textView.setVisibility(View.GONE);  
        }

        @Override
        protected Void doInBackground(Void... params) {
            startMyService();
            return null;
        }
    }





toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {

                startservice_AsyncTask startserviceTask = new startservice_AsyncTask();
                startserviceTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
            }
            else {

                Thread t = new Thread(){
                    public void run(){
                        stopMyService();
                    }
                };
                t.start();
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM