リサイクルビューを作成した場合チェックボックス アイテムをチェックしてチェック項目をスクロールすると、チェックボックスがオフになります。ピクチャで説明する操作 スクロール前です。 をスクロールした後enter image description here を最初の項目をチェックするとがある場合には、enter image description hereチェックボックスのチェック項目チェックボックススクロールの場合
、ここでは私の悪い英語のための
package abtech.waiteriano.com.waitrer.adapters;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import java.util.ArrayList;
import abtech.waiteriano.com.waitrer.R;
import abtech.waiteriano.com.waitrer.getters_and_setters.ItemsListsModel;
/**
* Created by yassin on 5/17/17.
*/
public class RecycleAdapterDialogModifier extends RecyclerView.Adapter<RecycleAdapterDialogModifier.MyViewHolder> {
private Context context;
ArrayList<ItemsListsModel> modifierArrayList;
ArrayList<Boolean> positionArray;
public RecycleAdapterDialogModifier(Context context, ArrayList<ItemsListsModel> modifierArrayList) {
this.context = context;
this.modifierArrayList = modifierArrayList;
positionArray = new ArrayList<Boolean>(modifierArrayList.size());
for(int i =0;i<modifierArrayList.size();i++){
positionArray.add(false);
}
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.modifierlistitem, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
ItemsListsModel itemsListsModel = modifierArrayList.get(position);
holder.modifierCB.setText(itemsListsModel.getName());
holder.modifierCB.setFocusable(false);
holder.modifierCB.setChecked(positionArray.get(position));
holder.modifierCB.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
System.out.println(position+"--- :)");
positionArray.set(position, true);
}else
positionArray.set(position, false);
}
});
}
@Override
public int getItemCount() {
return modifierArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
CheckBox modifierCB;
TextView usernameContItem;
public MyViewHolder(View itemView) {
super(itemView);
modifierCB = (CheckBox) itemView.findViewById(R.id.itemCb);
}
}
}
申し訳ありません私のアダプタクラスのように未チェックのデフォルト値に変更され、任意のものは明らかではない
これは、クラスでは一部ですがOnCheckedChangeListener()
がトリガされていないことを確認するために、ちょうどholder.modifierCB.setChecked(positionArray.get(position));
前itemHolder.checkBox.setOnCheckedChangeListener(null);
を書いてみアダプタ
private static void setPiking(String modeCode) {
RecyclerView modifierItemList;
Button OkBtn, CancelBtn;
LayoutInflater inflater2 = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View view2 = inflater2.inflate(R.layout.modifier_list, null);
modifierItemList = (RecyclerView) view2.findViewById(R.id.modifierList);
OkBtn = (Button) view2.findViewById(R.id.okBtn90);
CancelBtn = (Button) view2.findViewById(R.id.cancelBtn90);
final AlertDialog.Builder builder1 = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.myDialog));
ModGroubeCode = Integer.parseInt(modeCode);
String Sql = "SELECT dbo.Items.Code, dbo.Items.Name FROM dbo.Items";
ResultSet RS = ConnectionClass.Ret_RS(Sql);
try {
ArrayList<ItemsListsModel> modifierArrayList = new ArrayList<ItemsListsModel>();
while (RS.next()) {
builder1.setMessage("Modifier Group :- " + RS.getString("ModifierGroup_Name"));
String name = RS.getString("Name");
String id = RS.getString("Code");
TreeMap<String, Object> arr = new TreeMap<String, Object>();
ItemsListsModel itemsListsModel = new ItemsListsModel(id, name, arr);
modifierArrayList.add(itemsListsModel);
}
adapter = new RecycleAdapterDialogModifier(context, modifierArrayList);
modifierItemList.setAdapter(adapter);
builder1.setView(view2);
builder1.setCancelable(true);
final AlertDialog alert11 = builder1.create();
OkBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
CancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alert11.dismiss();
}
});
alert11.show();
if (Mo_multiPick) {
//show Ok
OkBtn.setVisibility(View.VISIBLE);
} else {
OkBtn.setVisibility(View.INVISIBLE);
}
if (Mo_allawNoPick) {
//show Cancel
CancelBtn.setVisibility(View.VISIBLE);
} else {
CancelBtn.setVisibility(View.INVISIBLE);
}
} catch (Exception ex) {
}
}
アダプターを使用するアクティビティコードを送信できますか? – Hahn
@Hahnは小切手を持っていますクラスの一部を投稿したアダプタ – Nativony
定期的にsetPikingメソッドを呼び出していますか? – Hahn