私はオブジェクトを持っています:
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 を参照することはできません」と書かれています
誰でも私を助けることができますか?