0

私はオブジェクトを持っています:

PanggilOlahraga( nama, met, waktu, kalori )

そして、 「waktu」値を含むスピナーがあります。

スピナー値が選択されているときに、「waktu」値を変更したい。

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

            ViewHolder holder = null;

            Log.d("ConvertView", String.valueOf(position));

            PanggilOlahraga olahraga = PanggilOlahragaList.get(position);
            if (convertView == null) {

                LayoutInflater vi = (LayoutInflater)getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
                    convertView = vi.inflate(R.layout.olahragainet_info, null);

                    holder          = new ViewHolder();
                    holder.nama     = (TextView) convertView.findViewById(R.id.tvNamaOlgaInet);
                    holder.checkbox = (CheckBox) convertView.findViewById(R.id.cbOlga);
                    holder.sp       = (Spinner) convertView.findViewById(R.id.spWaktu);


                    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
                                getApplicationContext(), R.layout.my_spinner_textview, items1); 

                    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    holder.sp.setAdapter(adapter1);     
                    holder.sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

                            Object item     = parent.getItemAtPosition(pos);
                            txtWaktu        = item.toString();
                            double dwaktu   = Double.parseDouble(txtWaktu);

                            olahraga.setWaktu(dwaktu);

                        }
                        public void onNothingSelected(AdapterView<?> parent) {

                        }
                   });
                    convertView.setTag(holder);

                    // ACTION CLICKED ON CHECK BOX
                    holder.checkbox.setOnClickListener( new View.OnClickListener() {  
                        public void onClick(View v) {  
                            CheckBox cb = (CheckBox) v ;  
                            PanggilOlahraga olahraga = (PanggilOlahraga) cb.getTag();  
                            olahraga.setSelected(cb.isChecked());
                        }  
                    });
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            kalori = olahraga.getMet() * olahraga.getWaktu() / 60.0 * berat;
            holder.nama.setText(olahraga.getNama());
            holder.checkbox.setChecked(olahraga.isSelected());
            holder.checkbox.setTag(olahraga);
            olahraga.setKalori(kalori);

            return convertView;

        }

しかし、olahraga.setWaktu(dwaktu)に誤りがありました。

「別のメソッドで定義された内部クラス内の非変数 olahraga を参照することはできません」と書かれています

誰でも私を助けることができますか?


4

1 に答える 1