0
実際には、私がチェックボックスでトーストを印刷しているときにサイズが表示されません。アンドロイドでチェックされたイベント。子どもの問題をすべてチェックしました
問題が自動的に解決されるサイズを取得すると、アンドロイドの親チェックボックスのコードが表示されます。
このコードはカスタムアダプターで宣言されています。
public void onBindViewHolder(final MyViewHolder holder, int position) {
//Toast.makeText(context, "Key: " + position, Toast.LENGTH_LONG).show();
String val = allCityList.get(position);
Integer cnt = val.split("-").length;
if (cnt > 1) {
val = val.split("-")[1];
holder.chkbox_parent.setText(val);
holder.chkbox_parent.setTag("State");
holder.chkbox_parent.setTypeface(null, Typeface.BOLD);
stateTag = val;
} else {
val = val.split("-")[0];
holder.chkbox_parent.setText(val);
holder.chkbox_parent.setTag(stateTag);
}
holder.chkbox_parent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
CheckBox chk = (CheckBox) holder.chkbox_parent;
if (chk.getTag().equals("State")) {
String state = chk.getText().toString();
Toast.makeText(context, state, Toast.LENGTH_LONG).show();
try {
RecyclerView rv1 = holder.rvParent;
// Toast.makeText(context, ""+rv1.getTag(), Toast.LENGTH_LONG).show();
for (int i = 0; i < rv1.getChildCount(); i++) {
Log.e("hello......", ""+rv1.getChildCount());
CheckBox cb;
cb = (CheckBox) rv1.getChildAt(i).findViewById(R.id.chkbox_parent);
Toast.makeText(context, "" + cb.getText(), Toast.LENGTH_LONG).show();
// if (state.equals(cb.getTag()))
// cb.setChecked(chk.isChecked());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
問題であるrecyclerviewに来すなわちrv.getchildcountすべての
私は理解していただけますか少し分かりますか、デモプログラムを見せてください。 – Abhi
あなたが作成したRecyclerView APIの違反を提示しただけです。私は子供の数を得ることはあなたが望むものではない(よくある間違い)、あなたが本当にやりたいことは、特定のアイテムの状態を取得/設定することです。正直言って、あなたはRecyclerViewの仕組みを完全に理解していないようであり、基本的な概念を理解していなければ、すべてを段階的に説明することは難しいでしょう。あなたは、[リンク](http://www.androidhive.info/2016/01/android-working-with-recycler-view/)のようなRecyclerViewチュートリアルの1つを試してみるべきです。リサイクルの概念を理解するのに役立ちます。 –
あなたは正しいと思いますが、自分のコードに表示されているのは、チェックボックスをオンにしたときです。すべてのサブチェックボックスを選択(すべて選択)していますか? – Abhi