Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onViewCreated()中选择复选框的问题_Java_Android_Listview_Arraylist_Checkbox - Fatal编程技术网

Java onViewCreated()中选择复选框的问题

Java onViewCreated()中选择复选框的问题,java,android,listview,arraylist,checkbox,Java,Android,Listview,Arraylist,Checkbox,在onViewCreated中启动应用程序时,我需要自动选中所有复选框 使用此代码: @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); lv = (ListView)getView().findViewById(R.id.listview); display

在onViewCreated中启动应用程序时,我需要自动选中所有复选框

使用此代码:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    lv = (ListView)getView().findViewById(R.id.listview);
    displayPlanetList();

    for (int i=0;i<plAdapter.getCount();i++) {
        Planet p=plAdapter.getItem(i);
        //if(p.getId()==3) {
            //System.out.println("NOME PIANETA:" + p.getName());
            p.setSelected(true);
        //}
        p.setSelected(true);

        System.out.println("NOME PIANETA2:" + p.isSelected());
    }
}
自定义适配器:

public abstract class PlanetAdapter extends ArrayAdapter<Planet> implements CompoundButton.OnCheckedChangeListener, View.OnClickListener
{
    private List<Planet> planetList;
    private Context context ;
    ArrayList<Birra> objects;
    public boolean Checked;
    private Integer[] imageId;
    String ciao;
    static PlanetAdapter plAdapter;
    String selState ;

    public PlanetAdapter(List<Planet> planetList, Context context,Integer[] imageId) {
        super(context, R.layout.single_listview_item,planetList);
        this.planetList = planetList;
        this.context = context;
        this.imageId = imageId;
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    }

    @Override
    public void onClick(View v) {

    }


    public class PlanetHolder {
        public TextView planetName;
        public TextView distView;
        public TextView valuta;
        public CheckBox chkBox;
      //  public EditText edit;
        public TextView caratteristica;
        public TextView id;
        public ImageView imageView;
        public Spinner spinner;
        public NumberPicker np;
    }

    @Override
    public int getCount() {
        return planetList.size();
    }

    @Override
    public Planet getItem(int position) {
        return planetList.get(position);
    }


    @Override
    public View getView(final int position, final View convertView, final ViewGroup parent) {

        View row = convertView;
        PlanetHolder holder = null;

        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(R.layout.single_listview_item, parent, false);
            holder = new PlanetHolder();
            holder.planetName = (TextView) row.findViewById(R.id.name);
            holder.distView = (TextView) row.findViewById(R.id.dist);
            holder.valuta = (TextView) row.findViewById(R.id.valuta);
            holder.chkBox = (CheckBox) row.findViewById(R.id.chk_box);
         //   holder.edit = (EditText) row.findViewById(R.id.editText);
            holder.spinner = (Spinner) row.findViewById(R.id.simpleSpinner);
            holder.np=(NumberPicker)row.findViewById(R.id.np);
           // holder.edit2 = (EditText) row.findViewById(R.id.editText2);
          //  holder.iterator = (Button) row.findViewById(R.id.iterator);
           // Button iterator=(Button) row.findViewById(R.id.iterator);
           // iterator.setOnClickListener(this.PlanetHolder);
            holder.caratteristica=(TextView) row.findViewById(R.id.caratteristica);
            holder.imageView = (ImageView) row.findViewById(R.id.ivImage);
         //   holder.edit.setVisibility(View.GONE);
         //   holder.edit.setEnabled(false);
            holder.spinner.setVisibility(View.GONE);
          //  holder.edit.setVisibility(View.GONE);


            // holder.id = (TextView) row.findViewById(R.id.id);

            row.setTag(holder);

        } else {
            holder = (PlanetHolder) row.getTag();
        }

        final Planet p = planetList.get(position);
        System.out.println("stampato P" + p);
        holder.imageView.setImageResource(imageId[position]);
        holder.planetName.setText(p.getName());
        holder.distView.setText("" + p.getDistance());
        holder.valuta.setText("" + p.getValuta());
        holder.chkBox.setChecked(p.isSelected());
        holder.chkBox.setTag(p);
        holder.caratteristica.setText(p.getCaratteristica());
      // holder.edit.setEnabled(false);

        SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
        boolean isChecked = states.getBoolean("holder.chkBox" + holder.planetName.getText().toString(), false);
        System.out.println(isChecked);


        if (isChecked) {
            holder.spinner.setVisibility(View.VISIBLE);
            holder.np.setVisibility(View.VISIBLE);
        } else {
            holder.chkBox.setChecked(false);
          //  holder.edit.setVisibility(View.GONE);
          //  holder.edit.setEnabled(false);
            holder.spinner.setVisibility(View.GONE);
            holder.np.setVisibility(View.GONE);

         }
        final PlanetHolder finalHolder2 = holder;


        holder.chkBox.setOnCheckedChangeListener(PlanetAdapter.this);



        // final BirraHolder finalHolder = birraHolder;
        final PlanetHolder finalHolder = holder;
        Planet z=getItem(position);
        System.out.println(z);
        final PlanetHolder finalHolder1 = holder;
        final PlanetHolder finalHolder3 = holder;

        holder.chkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View v) {
                if (finalHolder.chkBox.isChecked()) {
                   // finalHolder.edit.setVisibility(View.VISIBLE);
                   // finalHolder.edit.setEnabled(true);
                    finalHolder.spinner.setVisibility(View.VISIBLE);
                    finalHolder.np.setVisibility(View.VISIBLE);
                    finalHolder.np.setMaxValue(10);
                    finalHolder.np.setMinValue(0);
                    finalHolder.np.setWrapSelectorWheel(true);
                   // finalHolder.np.getMinValue();
                   // System.out.println("valore picker alla selezione della checkbox"+finalHolder.np.getMinValue());

                    // finalHolder.edit2.setVisibility(View.VISIBLE);
                    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                            getContext(),
                            R.array.country_arrays,
                            android.R.layout.simple_spinner_item);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    //finalHolder.spinner.setAdapter(adapter);
                    finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            finalHolder.spinner.setSelection(position);
                          //  selState = finalHolder.spinner.getSelectedItem().toString();
                         //   p.setQuantità(finalHolder.edit.getText().toString().trim());
                            p.setTipo(finalHolder.spinner.getSelectedItem().toString());

                          //  finalHolder.edit2.setText(selState);
                          //  System.out.println(selState);
                            System.out.println("p.getTipo()"+p.getTipo());

                           /* Toast.makeText(
                                    getContext(),
                                    "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();*/



                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {

                        }


                    });
                    finalHolder.np.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
                        @Override
                        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
                            p.setQuantità2(newVal);
                            System.out.println(p.getQuantità2());
                            SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                            SharedPreferences.Editor editor = states.edit();
                            editor.putInt("finalHolder.picker" + finalHolder.planetName.getText().toString(), finalHolder.np.getId());
                            editor.commit();
                        }
                    });



                    SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = states.edit();
                    editor.putBoolean("holder.chkBox" + finalHolder.planetName.getText().toString(), true);
                    editor.commit();


                  /*  SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = states.edit();
                    editor.putBoolean("holder.chkBox" + finalHolder.planetName.getText().toString(), true);
                    editor.commit();*/
                    //Utility.putPizzaItem(p);
                    //Utility.getPizzaItem(p);
                } else {
                    finalHolder.spinner.setVisibility(View.GONE);
                    finalHolder.np.setVisibility(View.GONE);
                    finalHolder.np.setValue(0);
                }
            }
        });

        return row;
    }

尝试在for循环结束后使用plAdapter.notifyDataSetChanged。在适配器中设置值后,必须刷新列表视图。

尝试使用plAdapter.notifyDataSetChanged after for循环结束。在adapter中设置值后,必须刷新listview。

在adapters getView方法中,尝试以下操作:

在adapters getView方法中,尝试以下操作:


假设你在你的PlanetAdapter中膨胀一个自定义布局,为什么不在您所在行的XML布局中设置android:checked=true?@MichaELDodd我希望选中代码为java而非XML的所有复选框…尝试在调用后添加plAdapter.notifyDataSetChangedsetSelected@MichaelDodd不起作用…也可以直接使用plAdapter.getItemi.setSelectedtrue,而不是将getItemi复制到单独的对象中在PlanetAdapter中展开自定义布局,为什么不在您所在行的XML布局中设置android:checked=true?@MichaELDodd我希望选中代码为java而非XML的所有复选框…尝试在调用后添加plAdapter.notifyDataSetChangedsetSelected@MichaelDodd不起作用…也可以直接使用plAdapter.getItemi.setSelectedtrue,而不是将getItemi复制到单独的对象中。请发布在适配器类中实现的getView方法。是否有任何理由使用onCheckedChanged侦听器?。如果不是,请删除onCheckedChanged listener并重试。我需要onCheckedChanged listener,因为如果需要,我可以选中和取消选中复选框…请检查您正在使用的以下行:boolean isChecked=states.getBooleanholder.chkBox+holder.planetName.getText.toString,false;因为上面的行总是给出错误的值。将isChecked值更新为复选框时,复选框处于未选中状态。请发布在适配器类中实现的getView方法。是否有任何理由使用onCheckedChanged侦听器?。如果不是,请删除onCheckedChanged listener并重试。我需要onCheckedChanged listener,因为如果需要,我可以选中和取消选中复选框…请检查您正在使用的以下行:boolean isChecked=states.getBooleanholder.chkBox+holder.planetName.getText.toString,false;因为上面的行总是给出错误的值。将isChecked值更新为复选框时,复选框处于未选中状态。
public abstract class PlanetAdapter extends ArrayAdapter<Planet> implements CompoundButton.OnCheckedChangeListener, View.OnClickListener
{
    private List<Planet> planetList;
    private Context context ;
    ArrayList<Birra> objects;
    public boolean Checked;
    private Integer[] imageId;
    String ciao;
    static PlanetAdapter plAdapter;
    String selState ;

    public PlanetAdapter(List<Planet> planetList, Context context,Integer[] imageId) {
        super(context, R.layout.single_listview_item,planetList);
        this.planetList = planetList;
        this.context = context;
        this.imageId = imageId;
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    }

    @Override
    public void onClick(View v) {

    }


    public class PlanetHolder {
        public TextView planetName;
        public TextView distView;
        public TextView valuta;
        public CheckBox chkBox;
      //  public EditText edit;
        public TextView caratteristica;
        public TextView id;
        public ImageView imageView;
        public Spinner spinner;
        public NumberPicker np;
    }

    @Override
    public int getCount() {
        return planetList.size();
    }

    @Override
    public Planet getItem(int position) {
        return planetList.get(position);
    }


    @Override
    public View getView(final int position, final View convertView, final ViewGroup parent) {

        View row = convertView;
        PlanetHolder holder = null;

        if (row == null) {
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            row = inflater.inflate(R.layout.single_listview_item, parent, false);
            holder = new PlanetHolder();
            holder.planetName = (TextView) row.findViewById(R.id.name);
            holder.distView = (TextView) row.findViewById(R.id.dist);
            holder.valuta = (TextView) row.findViewById(R.id.valuta);
            holder.chkBox = (CheckBox) row.findViewById(R.id.chk_box);
         //   holder.edit = (EditText) row.findViewById(R.id.editText);
            holder.spinner = (Spinner) row.findViewById(R.id.simpleSpinner);
            holder.np=(NumberPicker)row.findViewById(R.id.np);
           // holder.edit2 = (EditText) row.findViewById(R.id.editText2);
          //  holder.iterator = (Button) row.findViewById(R.id.iterator);
           // Button iterator=(Button) row.findViewById(R.id.iterator);
           // iterator.setOnClickListener(this.PlanetHolder);
            holder.caratteristica=(TextView) row.findViewById(R.id.caratteristica);
            holder.imageView = (ImageView) row.findViewById(R.id.ivImage);
         //   holder.edit.setVisibility(View.GONE);
         //   holder.edit.setEnabled(false);
            holder.spinner.setVisibility(View.GONE);
          //  holder.edit.setVisibility(View.GONE);


            // holder.id = (TextView) row.findViewById(R.id.id);

            row.setTag(holder);

        } else {
            holder = (PlanetHolder) row.getTag();
        }

        final Planet p = planetList.get(position);
        System.out.println("stampato P" + p);
        holder.imageView.setImageResource(imageId[position]);
        holder.planetName.setText(p.getName());
        holder.distView.setText("" + p.getDistance());
        holder.valuta.setText("" + p.getValuta());
        holder.chkBox.setChecked(p.isSelected());
        holder.chkBox.setTag(p);
        holder.caratteristica.setText(p.getCaratteristica());
      // holder.edit.setEnabled(false);

        SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
        boolean isChecked = states.getBoolean("holder.chkBox" + holder.planetName.getText().toString(), false);
        System.out.println(isChecked);


        if (isChecked) {
            holder.spinner.setVisibility(View.VISIBLE);
            holder.np.setVisibility(View.VISIBLE);
        } else {
            holder.chkBox.setChecked(false);
          //  holder.edit.setVisibility(View.GONE);
          //  holder.edit.setEnabled(false);
            holder.spinner.setVisibility(View.GONE);
            holder.np.setVisibility(View.GONE);

         }
        final PlanetHolder finalHolder2 = holder;


        holder.chkBox.setOnCheckedChangeListener(PlanetAdapter.this);



        // final BirraHolder finalHolder = birraHolder;
        final PlanetHolder finalHolder = holder;
        Planet z=getItem(position);
        System.out.println(z);
        final PlanetHolder finalHolder1 = holder;
        final PlanetHolder finalHolder3 = holder;

        holder.chkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View v) {
                if (finalHolder.chkBox.isChecked()) {
                   // finalHolder.edit.setVisibility(View.VISIBLE);
                   // finalHolder.edit.setEnabled(true);
                    finalHolder.spinner.setVisibility(View.VISIBLE);
                    finalHolder.np.setVisibility(View.VISIBLE);
                    finalHolder.np.setMaxValue(10);
                    finalHolder.np.setMinValue(0);
                    finalHolder.np.setWrapSelectorWheel(true);
                   // finalHolder.np.getMinValue();
                   // System.out.println("valore picker alla selezione della checkbox"+finalHolder.np.getMinValue());

                    // finalHolder.edit2.setVisibility(View.VISIBLE);
                    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                            getContext(),
                            R.array.country_arrays,
                            android.R.layout.simple_spinner_item);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    //finalHolder.spinner.setAdapter(adapter);
                    finalHolder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            finalHolder.spinner.setSelection(position);
                          //  selState = finalHolder.spinner.getSelectedItem().toString();
                         //   p.setQuantità(finalHolder.edit.getText().toString().trim());
                            p.setTipo(finalHolder.spinner.getSelectedItem().toString());

                          //  finalHolder.edit2.setText(selState);
                          //  System.out.println(selState);
                            System.out.println("p.getTipo()"+p.getTipo());

                           /* Toast.makeText(
                                    getContext(),
                                    "Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();*/



                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {

                        }


                    });
                    finalHolder.np.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
                        @Override
                        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
                            p.setQuantità2(newVal);
                            System.out.println(p.getQuantità2());
                            SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                            SharedPreferences.Editor editor = states.edit();
                            editor.putInt("finalHolder.picker" + finalHolder.planetName.getText().toString(), finalHolder.np.getId());
                            editor.commit();
                        }
                    });



                    SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = states.edit();
                    editor.putBoolean("holder.chkBox" + finalHolder.planetName.getText().toString(), true);
                    editor.commit();


                  /*  SharedPreferences states = getContext().getSharedPreferences("states", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = states.edit();
                    editor.putBoolean("holder.chkBox" + finalHolder.planetName.getText().toString(), true);
                    editor.commit();*/
                    //Utility.putPizzaItem(p);
                    //Utility.getPizzaItem(p);
                } else {
                    finalHolder.spinner.setVisibility(View.GONE);
                    finalHolder.np.setVisibility(View.GONE);
                    finalHolder.np.setValue(0);
                }
            }
        });

        return row;
    }
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {

    ...........
    ...................

    if (isChecked) {
        holder.chkBox.setChecked(true);

        holder.spinner.setVisibility(View.VISIBLE);
        holder.np.setVisibility(View.VISIBLE);
    } else {
        holder.chkBox.setChecked(false);

        holder.spinner.setVisibility(View.GONE);
        holder.np.setVisibility(View.GONE);
     }

     .........
     ...................

     return row;
}