私はすべてのタスクのトグルボタンを作成するバケットリストアプリケーションを作成していますので、ボタンを押すと状態が「偽」から「真」に変わりますが、状態を保存して変更しないでくださいアプリを再起動したら? 1つのボタンでうまくいきましたが、リストビューに接続されているすべてのToggleボタンでどのように動作させることができますか?再起動後にトグルボタンの状態を無制限に保存する方法はありますか?
public class MainActivity extends AppCompatActivity {
private TaskDbHelper mHelper;
private ListView mTaskListView;
private ArrayAdapter<String> mAdapter;
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHelper = new TaskDbHelper(this);
updateUI();
LayoutInflater myinflater = getLayoutInflater();
View myview = myinflater.inflate(R.layout.item_todo, (ViewGroup) findViewById(R.id.lld),false);
ToggleButton togglebut = (ToggleButton) myview.findViewById(R.id.toggleButton);
sp = getSharedPreferences("sp",MainActivity.MODE_PRIVATE);
if (sp.getString("sp","").equals("0")){
togglebut.setChecked(true);
} else if (sp.getString("sp","").equals("1")){
togglebut.setChecked(false);
}
if (togglebut.isChecked()){
sp.edit().putString("sp","0").apply();
} else {sp.edit().putString("sp","0").apply();
}
togglebut.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sp = getSharedPreferences("sp",MainActivity.MODE_PRIVATE);
if (isChecked){
sp.edit().putString("sp","0").apply();
} else {
sp.edit().putString("sp","1").apply();
}
}
});
}
なぜないタスクが定義されているデータベースでは?そこに「完了」の列がある可能性があります。 – RobCo