私はrecyclerviewを持っており、on1アイテムをクリックするとそのアイテムのサブカテゴリを持つダイアログが開きます。各サブカテゴリにはcheckbpxがあります。私は1、チェックボックスをクリックして、[OK]をクリックし、別のサブカテゴリに別のカテゴリに同じインデックスの項目を選択するために戻ったときにもchecked.thisされ、サブカテゴリチェックボックス付きRecyclerViewは、同じインデックス値のサブカテゴリ内のすべてのアイテムをチェックします
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bt_ok:
// Updatecatagory();
for (int i = 0; i < mysubcatagoryAdapter.catagory_list.size(); i++) {
if (!mysubcatagoryAdapter.isChecked) {
// mysubcatagoryAdapter.removehash.get(i).;
//mysubcatagoryAdapter.removehash.clear();
mysubcatagoryAdapter.removehash.remove(i);
}
}
finish();
}
}
を一覧表示するダイアログボックスから、私のコードで、これはあります私のアダプタ
public class CustomRecycleViewAdapter_Language extends
RecyclerView.Adapter<CustomRecycleViewAdapter_Language.MyLanguageViewHolder>
{
private Context context;
public ArrayList<String> catagory_list;
private View resourceLayout;
private OnSelected onSelected;
private String checkForAction;
public ArrayList<String> removehash;
public boolean isChecked=false;
int count = 1;
SharedPreferences selection =
getApplicationContext().getSharedPreferences("MyLang", MODE_PRIVATE);
SharedPreferences.Editor editor = selection.edit();
public CustomRecycleViewAdapter_Language(Context context, ArrayList<String>
catagory_list, String checkForAction) {
this.context = context;
this.catagory_list = catagory_list;
this.checkForAction = checkForAction;
}
public class MyLanguageViewHolder extends RecyclerView.ViewHolder {
private TextView tv_option;
private CheckBox cb_option;
private RelativeLayout rl_option;
public MyLanguageViewHolder(View itemView) {
super(itemView);
tv_option = (TextView) itemView.findViewById(R.id.tv_option);
cb_option = (CheckBox) itemView.findViewById(R.id.cb_option);
rl_option = (RelativeLayout) itemView.findViewById(R.id.rl_option);
}
}
@Override
public MyLanguageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
resourceLayout = LayoutInflater.from(parent.getContext()).inflate(R.layout.resource_selectfilter, null);
MyLanguageViewHolder mcv = new MyLanguageViewHolder(resourceLayout);
return mcv;
}
@Override
public void onBindViewHolder(final MyLanguageViewHolder holder, final int position) {
holder.tv_option.setText(catagory_list.get(position).split("#")
[1].substring(0, 1).toUpperCase() +
catagory_list.get(position).split("#")[1].substring(1));
removehash = new ArrayList<>();
removehash.clear();
Common.languageselection.add(position);
for (int i = 0; i < catagory_list.size(); i++) {
removehash.add(catagory_list.get(i).split("#")[0]);
}
if (!Common.isFlag) {
try {
if(Common.languageselection.size()!=0) {
if
(Common.setid.get(position).equals(String.valueOf(position))) {
holder.cb_option.setChecked(true);
}
}
count = 2;
} catch (Exception e) {
}
}
if (checkForAction.equals("UPLOAD")) {
holder.cb_option.setVisibility(View.GONE);
}
holder.rl_option.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onSelected != null) {
if (count == 2) {
if (!holder.cb_option.isChecked()) {
holder.cb_option.setChecked(true);
removehash.get(position);
isChecked=true;
Common.setid.add(String.valueOf(position));
} else if (holder.cb_option.isChecked()) {
holder.cb_option.setChecked(false);
Common.setid.remove(String.valueOf(position));
removehash.remove(position);
}
onSelected.onClicked(view, removehash.get(position));
isChecked=true;
} else {
if (!holder.cb_option.isChecked()) {
holder.cb_option.setChecked(true);
Common.setid.add(String.valueOf(position));
removehash.get(position);
isChecked=true;
} else if (holder.cb_option.isChecked()) {
holder.cb_option.setChecked(false);
removehash.remove(position);
Common.setid.remove(String.valueOf(position));
}
if (checkForAction.equals("UPLOAD")) {
holder.cb_option.setVisibility(View.GONE);
onSelected.onClicked(view, catagory_list.get(position));
} else
onSelected.onClicked(view, removehash.get(position));
Common.holdvalues.add(removehash.get(position));
}
Log.v("SHOW", removehash.toString());
}
}
});
// try
// {
//
// if(Common.languageselection.size()>0)
// {
// for(int i=0;i<Common.languageselection.size();i++)
// {
//
//
//
if(Common.languageselection.get(i).equals(Common.setid.get(i)))
// {
//
// holder.cb_option.setChecked(true);
// }
// else
// holder.cb_option.setChecked(false);
//
// }
// }
//
// }catch (Exception e)
// {
//
// }
/* holder.tv_option.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onlanguageSelected != null) {
onlanguageSelected.onLanguageClicked(view,catagory_list.get(position));
}
}
});*/
}
@Override
public int getItemCount() {
return catagory_list.size();
}
public void setOnSelected(OnSelected onSelected) {
this.onSelected = onSelected;
}
public interface OnSelected {
public void onClicked(View view, String selectedVal);
}
}
これは、レイアウト
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_subcatagories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:padding="20dp"
android:scrollbars="vertical">
</android.support.v7.widget.RecyclerView>
<LinearLayout
android:id="@+id/ll_respondcontainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/rv_subcatagories"
android:orientation="horizontal"
android:padding="10dp">
<Button
android:id="@+id/bt_ok"
android:layout_width="80dp"
android:layout_height="30dp"
android:layout_marginRight="2dp"
android:background="@drawable/btn_background"
android:text="OK"
android:textColor="@color/white" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
私はそれが助け場合plsはチェックの例を作ったあなたの質問からRecyclerView項目
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingRight="3dp"
android:paddingTop="2dp">
<RelativeLayout
android:id="@+id/rl_option"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="horizontal"
android:padding="5dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<CheckBox
android:id="@+id/cb_option"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:clickable="false"
android:button="@drawable/checkbox_selector"
android:gravity="left" />
<TextView
android:id="@+id/tv_option"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_centerVertical="true"
android:text="Arindom"
android:background="@drawable/edittext_bg"
android:gravity="center"
android:padding="2dp"
android:textColor="@color/filtertextcolor"
android:textSize="15dp" />
<View
android:id="@+id/UnderPassword"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/tv_option"
android:layout_centerHorizontal="true"
android:background="@color/linecolor" />
</RelativeLayout>
</RelativeLayout>
sorry.didnt work.uが私を助けることができるなら、私はヒントを与えることができます。mysubcatagoryAdapter.removehash.remove(i)またはclear(i)をアクティビティで使用すると、アダプタ内のarraylistをフェッチしてクリアしますOKが押されたときにすべてのチェックが行われますが、私がチェックしたものはすべてのサブカテゴリでチェックして、チェックしないとチェックしないと、plsを助けることができますか? –
レイアウトファイルとarraylistのサンプルデータを送ってもらえますか?だから私はあなたをより良く助けることができます。 –
私はレイアウトファイルで質問を編集し、各行のチェックボックスを使ってサブカテゴリーのarraylistデータを取り出します - –