gpt4 book ai didi

android - 如何在 fragment 中使用切换按钮

转载 作者:行者123 更新时间:2023-11-29 00:17:56 28 4
gpt4 key购买 nike

这是我的类代码,我想在其中访问切换按钮但出现空指针异常。我使用 ViewHolder 类从布局获取 View 并在此处访问它们。但无法找到错误,为什么我在 < br/> holder.stateOnOff.setText();行

 public class ColorSchemeFragment extends Fragment {

public class ViewHolder {
public ToggleButton toggleButton;
public TextView stateOnOff;
}
ViewHolder holder = new ViewHolder();

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.colorscheme, container, false);
holder.toggleButton = ((ToggleButton) container.findViewById(R.id.toggle));
holder.stateOnOff=(TextView)container.findViewById(R.id.tvstate);
holder.stateOnOff.setText("OFF");
holder.toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
holder.stateOnOff.setText("On");
}else{
holder.stateOnOff.setText("Off");
}
}
});
return view;
}
}

最佳答案

无需使用 ViewHolder。它们用于通过 ListView 或其他可 ScrollView 回收 View 。

此外,container 对象包含父布局,而不是您正在膨胀的布局。因此它不包含您正在查找的 View 并返回 null。

public class ColorSchemeFragment extends Fragment {

public ToggleButton toggleButton;
public TextView stateOnOff;

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.colorscheme, container, false);
toggleButton = (ToggleButton) view.findViewById(R.id.toggle);
stateOnOff=(TextView) view.findViewById(R.id.tvstate);
stateOnOff.setText("OFF");
toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
stateOnOff.setText("On");
}else{
stateOnOff.setText("Off");
}
}
});
return view;
}
}

关于android - 如何在 fragment 中使用切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25238242/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com