Android:在开关上使用setOnCheckedChangeListener时,我得到'无法解决符号错误'

Kou*_*dar 4 android compiler-errors oncheckedchanged android-studio

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

    }

}
Run Code Online (Sandbox Code Playgroud)

我在这个项目中使用Android Studio.我已经在互联网上搜索了一个可扩展的解决方案但找不到解决方案.

我一直试图setOnCheckedChangeListener用于一个Switch对象.但无论我尝试什么,我总是得到一个无法解决符号'setOnCheckedChangeListener'的错误.此外,在A行,对象buttonView带有下划线红色,给出相同的错误无法解析符号'buttonView'.

我已经导入了必要的(并建议作为其他人的答案)类.我正在使用Android 4.0及更高版本的API.我基本上希望onClick通过侦听器重新实现该方法,因为侦听器可以同时处理点击和滑动,而onClick只适用于点击而不是滑动.

小智 8

你必须在Switch里面初始化onCreate()


Bla*_*elt 6

移动

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

        }
    });
Run Code Online (Sandbox Code Playgroud)

onCreatefindViewById在创建活动之前,您不能调用, ,并且swi.setOnCheckedChangeListener(..);这不是有效的语句