我有一个RecyclerView
与定制Adapter
有一个列表。每个列表中的元素有一个复选框是在自定义Adapter
中,我用手柄:如何引用Android中两个布局的元素?
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
当按下复选框来检测。
问题是,我也有一个按钮,但它是从视图的类处理。在这一类我可以引用其中的按钮布局,像这样:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View buttonInflater = inflater.inflate(R.layout.fragment_button,null);
但在自定义适配器,我不能做到这一点。我要做的:
public MyItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
所以有一次我有参考在各自的班级两种布局,我认为我可以提及的View类引用也是其在定制适配器布局的按钮。与此类似:
public MyItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
View buttonView = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_button, parent, false);
但是当我尝试引用按钮时,它似乎不被引用。
为什么我想从我的自定义适配器观点
引用按钮,因为我想,每个复选框被选中一个单位时间将被添加到按钮上的文字。例如,我第一次选择按钮上的列表的复选框,文本应该是1,第二次是2,依此类推。
这是我对我的自定义接口的代码时,我按复选框:
int sum = 0;
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(buttonView.isChecked()){
sum = sum + 1;
checkBox.setText("" + sum);
}else{
sum = sum - 1;
checkBox.setText("" + sum);
}
}
});
但这个按钮犯规写任何东西。
如何在按钮上书写?
在此先感谢!
只是一个问题。你在哪里定义'mButton'变量? –
谢谢!我知道了!谢谢你的建议发送到定制适配器inflater,这是诀窍:) –
太好了。对不起,我已经更清楚地更新了我的答案(尽管你已经明白了)。 –