Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在交换机上使用setOnCheckedChangeListener时,我得到';无法解决符号错误';_Android_Android Studio_Compiler Errors_Oncheckedchanged - Fatal编程技术网

Android:在交换机上使用setOnCheckedChangeListener时,我得到';无法解决符号错误';

Android:在交换机上使用setOnCheckedChangeListener时,我得到';无法解决符号错误';,android,android-studio,compiler-errors,oncheckedchanged,Android,Android Studio,Compiler Errors,Oncheckedchanged,我正在为这个项目使用Android Studio。我在互联网站上搜索了一个可扩展的解决方案,但没有找到 我一直在尝试使用setOnCheckedChangeListener作为开关对象。然而,无论我尝试什么,我总是得到一个无法解析符号“setoncheckedchangelister”的错误。此外,在A行,对象buttonView带有红色下划线,给出了相同的错误无法解析符号“buttonView” 我已经导入了必要的(并推荐作为其他人的答案)类。我正在使用android 4.0及以上版本的API

我正在为这个项目使用Android Studio。我在互联网站上搜索了一个可扩展的解决方案,但没有找到

我一直在尝试使用
setOnCheckedChangeListener
作为
开关
对象。然而,无论我尝试什么,我总是得到一个无法解析符号“setoncheckedchangelister”的错误。此外,在A行,对象buttonView带有红色下划线,给出了相同的错误无法解析符号“buttonView”


我已经导入了必要的(并推荐作为其他人的答案)类。我正在使用android 4.0及以上版本的API。我基本上希望通过监听器重新实现
onClick
方法,因为监听器同时使用单击和滑动,而
onClick
只使用单击而不使用滑动。

您必须初始化
开关
内部
onCreate()

移动

package com.example.koustav.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends Activity
{

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

    Switch swi = (Switch) findViewById(R.id.swch);
    swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
        {

        }
    });

    public void onClick(View view)
    {
        boolean isOn = ((Switch) view).isChecked();

        if (isOn)
        {
            ((TextView) findViewById(R.id.largey)).setTextColor(getResources().getColor(R.color.black));
        }
        else
        {
            ((TextView) findViewById(R.id.largey)).setTextColor(getResources().getColor(R.color.white));
        }

    }

}

onCreate
中。在创建活动之前,不能调用
findViewById
,也不能调用
swi.setOnCheckedChangeListener(…)不是有效语句

替换以下代码

  Switch swi = (Switch) findViewById(R.id.swch);
  swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
        {

        }
    });


它会成功的

并将
swi.setOnCheckedChangeListener()
和以下几行放在其中,直到分号:)
        switchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SwitchButton switchButton = (SwitchButton)view;
        switchButton.setOnCheckedChangeListener( new SwitchButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                SwitchButton switchButton = (SwitchButton) buttonView;