我有一个带有适配器的ListView,其布局有一个Switch,因此列表中的每个项目都有一个开关.
我想使用这段代码:
mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
// true if the switch is in the on position
}
});
Run Code Online (Sandbox Code Playgroud)
但我不知道在哪里使用它:在Adapter类或List Containing类中,我怎么能知道当我切换那个开关时我修改了什么项,所以我可以修改它的属性.
编辑:这是实现方法的Adapter类.它在每次调用方法getView()时运行,而不是在它应该运行时(当交换机切换时),并且Logs出现在logcat中但是切换的对象没有被修改,当我向下滚动并向上滚动时,开关回到原来的状态:
package com.nahue.actions;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
/*@SuppressLint("ViewHolder") */public class AdapterActions extends ArrayAdapter<Action>{
// our ViewHolder.
// caches our TextView
static …Run Code Online (Sandbox Code Playgroud)