【问题标题】:Android toggle button click set textviewAndroid 切换按钮单击设置文本视图
【发布时间】:2019-11-28 03:49:10
【问题描述】:

我是 android 开发的新手,我想在点击切换按钮时设置一个 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 之后该方法也没有执行。

【问题讨论】:

  • 发布完整代码。

标签: java android


【解决方案1】:

试试这个:

    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();
            }
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多