Android:在开关上使用 setOnCheckedChangeListener 时,我得到 'Cannot Resolve Symbol Error'
Android: When using setOnCheckedChangeListener on switches I get 'Cannot Resolve Symbol Error'
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
对象。但是,无论我尝试什么,我总是会收到 Cannot Resolve Symbol 'setOnCheckedChangeListener' 错误。此外,在 A 行,对象 buttonView 带有红色下划线,给出相同的错误 Cannot Resolve Symbol 'buttonView'.
我已经导入了必要的(并推荐作为其他人的答案)类。我正在使用 android 4.0 及更高版本的 API。我基本上希望通过侦听器重新实现 onClick
方法,因为侦听器同时适用于点击和滑动,而 onClick
仅适用于点击而不适用于滑动。
您必须在 onCreate()
中初始化 Switch
移动
Switch swi = (Switch) findViewById(R.id.swch);
swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
{
}
});
在 onCreate
中。在创建 activity 之前,您不能调用 findViewById
,并且 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;
它会起作用的!
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
对象。但是,无论我尝试什么,我总是会收到 Cannot Resolve Symbol 'setOnCheckedChangeListener' 错误。此外,在 A 行,对象 buttonView 带有红色下划线,给出相同的错误 Cannot Resolve Symbol 'buttonView'.
我已经导入了必要的(并推荐作为其他人的答案)类。我正在使用 android 4.0 及更高版本的 API。我基本上希望通过侦听器重新实现 onClick
方法,因为侦听器同时适用于点击和滑动,而 onClick
仅适用于点击而不适用于滑动。
您必须在 onCreate()
Switch
移动
Switch swi = (Switch) findViewById(R.id.swch);
swi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) //Line A
{
}
});
在 onCreate
中。在创建 activity 之前,您不能调用 findViewById
,并且 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;
它会起作用的!