以编程方式更改 ToggleButton 的状态
Change State of ToggleButton programmatically
我已经放置了一个 ID 为 toggleButton 的切换按钮
我正在使用下面的代码来检查它是打开还是关闭
public void toggleClick(View view){
boolean on = ((ToggleButton) view).isChecked();
if(on){
}else{
}
}
一切正常。我正在尝试更改切换按钮的状态,我通过互联网尝试了很多代码,但 none 将切换按钮的状态更改为关闭。
我试过这个:
ToggleButton toggleButtons;
toggleButtons = (ToggleButton) findViewById(R.id.toggleButton); //In onCreate
toggleButtons.setChecked(false);
有什么想法吗?
我最终使用了 ImageButton 的切换功能。下面的代码工作正常。
*
private ImageButton ib;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//......
ib = (ImageButton) rootView.findViewById(R.id.imagefavouriteButton);
if (checkFavorite()) {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
} else {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
}
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkFavorite()) {
remFromFav();
} else {
addFavorites();
}
}
});
//.....
}
private boolean checkFavorite(){// code to check in db}
public void addFavorites() {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
Toast.makeText(getActivity(), "Added ...", Toast.LENGTH_SHORT).show();
}
public void remFromFav() {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
Toast.makeText(getActivity(), "Removed ...", Toast.LENGTH_SHORT).show();
}
希望对您有所帮助。
使用setChecked(boolean checked)
举例:
toggleButtons.setChecked(true)
我已经放置了一个 ID 为 toggleButton 的切换按钮
我正在使用下面的代码来检查它是打开还是关闭
public void toggleClick(View view){
boolean on = ((ToggleButton) view).isChecked();
if(on){
}else{
}
}
一切正常。我正在尝试更改切换按钮的状态,我通过互联网尝试了很多代码,但 none 将切换按钮的状态更改为关闭。
我试过这个:
ToggleButton toggleButtons;
toggleButtons = (ToggleButton) findViewById(R.id.toggleButton); //In onCreate
toggleButtons.setChecked(false);
有什么想法吗?
我最终使用了 ImageButton 的切换功能。下面的代码工作正常。
*
private ImageButton ib;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//......
ib = (ImageButton) rootView.findViewById(R.id.imagefavouriteButton);
if (checkFavorite()) {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
} else {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
}
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkFavorite()) {
remFromFav();
} else {
addFavorites();
}
}
});
//.....
}
private boolean checkFavorite(){// code to check in db}
public void addFavorites() {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
Toast.makeText(getActivity(), "Added ...", Toast.LENGTH_SHORT).show();
}
public void remFromFav() {
ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
Toast.makeText(getActivity(), "Removed ...", Toast.LENGTH_SHORT).show();
}
希望对您有所帮助。
使用setChecked(boolean checked)
举例:
toggleButtons.setChecked(true)