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));
}
}
}
我正在为此项目使用Android Studio。我已经在互联网上搜索了一个可扩展的解决方案但找不到解决方案。
我一直在尝试将setOnCheckedChangeListener
用于Switch
对象。但无论我尝试什么,我总是得到无法解析符号'setOnCheckedChangeListener'错误。另外,在A行,对象buttonView用红色下划线表示同样的错误无法解析符号'buttonView'。
我已导入必要的(并建议其他人的答案)课程。我正在使用Android 4.0及更高版本的API。我基本上希望通过侦听器重新实现onClick
方法,因为侦听器同时使用了点击和滑动,而onClick
仅适用于点击而不是滑动。
答案 0 :(得分:8)
您必须在Switch
onCreate()
答案 1 :(得分:2)
移动
Switch swi = (Switch) findViewById(R.id.swch);
swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
{
}
});
onCreate
中的。在创建活动之前,您无法调用findViewById
,并且swi.setOnCheckedChangeListener(..);
不是有效的声明
答案 2 :(得分:0)
替换以下代码
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;
它会起作用!