我有一個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,這是訣竅:) –
太好了。對不起,我已經更清楚地更新了我的答案(儘管你已經明白了)。 –