Java Android切换按钮保存状态自定义列表视图

Java Android切换按钮保存状态自定义列表视图,java,android,android-togglebutton,Java,Android,Android Togglebutton,你好,朋友,我是android新手,我想知道如何在自定义ArrayAdapter中保存ToggleButton状态,我在ArrayAdapter的帮助下创建自定义ListView,现在我想知道如何在适配器中保存状态,这是我的代码,请解释一下实现这一目标的逻辑,我是初学者级别不知道如何实现这个目标 包bible.swordof.God; 导入android.app.Activity; 导入android.content.ContentValues; 导入android.content.Contex

你好,朋友,我是android新手,我想知道如何在自定义
ArrayAdapter
中保存
ToggleButton
状态,我在
ArrayAdapter
的帮助下创建自定义
ListView
,现在我想知道如何在
适配器中保存状态,这是我的代码,请解释一下实现这一目标的逻辑,我是初学者级别不知道如何实现这个目标

包bible.swordof.God;
导入android.app.Activity;
导入android.content.ContentValues;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.database.Cursor;
导入android.database.SQLException;
导入android.database.sqlite.SQLiteDatabase;
导入android.graphics.Color;
导入android.opengl.Visibility;
导入android.preference.PreferenceManager;
导入android.speech.tts.TextToSpeech;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.CompoundButton;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.ToggleButton;
导入com.amulyakhare.textdawable.textdawable;
导入com.amulyakhare.textdravable.util.ColorGenerator;
导入com.hitomi.cmlibrary.CircleMenu;
导入com.hitomi.cmlibrary.OnMenuSelectedListener;
导入com.hitomi.cmlibrary.OnMenuStatusChangeListener;
导入java.util.List;
导入java.util.Locale;
导入es.dmoral.toasty.toasty;
导入静态android.content.Context.MODE_PRIVATE;
导入静态android.database.sqlite.SQLiteDatabase.CONFLICT\u NONE;
导入静态android.icu.lang.UCharacter.GraphemeClusterBreak.V;
导入静态android.support.constraint.Constraints.TAG;
导入静态android.support.v4.content.ContextCompat.createDeviceProtectedStorageContext;
导入静态android.support.v4.content.ContextCompat.startActivity;
公共类FullverseAdopter扩展ArrayAdapter{
私人ALLVERSE活动;
私有列表versenumber;
私有列表verseid;
私有列表verselist;
私有列表reference;
texttospeechtexttospeech;
私有数据库助手mDBHelper;
私有数据库mDb;
私有布尔存储;
公共静态最终字符串MyPREFERENCES=“MyPrefs”;
//检查可用语言
int结果;
public FullverseAdopter(ALLVERSE上下文,int资源,Listversenumber,Listverselist,Listreference,Listverseid){
超级(上下文、资源、versenumber);
这个活动=上下文;
this.versenumber=versenumber;
this.verselist=verselist;
this.reference=reference;
this.verseid=verseid;
}
@凌驾
public int getCount(){
返回versenumber.size();
}
@凌驾
公共字符串getItem(int位置){
返回versenumber.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
最终持票人;
LayoutFlater充气器=(LayoutFlater)activity.getSystemService(activity.LAYOUT\u充气器\u服务);
//如果持有者不存在,则从UI文件中查找所有视图。
if(convertView==null){
//从XML文件膨胀UI
convertView=充气机。充气(R.layout.versedisplayrow,父级,false);
//获取所有UI视图
支架=新的视图支架(convertView);
//为支架设置标签
holder.versenumber=(TextView)convertView.findViewById(R.id.versenumber);
holder.verselist=(TextView)convertView.findViewById(R.id.verse);
convertView.setTag(支架);
}否则{
//如果创建了保持架,则从视图中获取标记
holder=(ViewHolder)convertView.getTag();
}
holder.versenumber.setText(versenumber.get(position));
holder.verselist.setText(verselist.get(position));
//分享诗句
holder.share.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toasty.info(活动,“共享一首诗”,Toast.LENGTH_SHORT,true).show();
Intent sendIntent=新Intent();
sendIntent.setAction(Intent.ACTION\u SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,reference.get(position)+):“+versenumber.get(position)+'\n'+verselist.get(position));
sendIntent.setType(“文本/普通”);
活动。startActivity(sendIntent);
}
});
textToSpeech=new textToSpeech(活动,new textToSpeech.OnInitListener(){
@凌驾
公共无效onInit(int状态){
if(status==TextToSpeech.SUCCESS){
结果=textToSpeech.setLanguage(Locale.ENGLISH);
}否则{
Toast.makeText(活动,“您的设备不受支持”,Toast.LENGTH_SHORT.show();
}
}
});
//我的切换按钮
holder.bookmark.setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener()){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(已检查){
}否则{
}
}
});
//mDBHelper=新数据库助手(活动);
//mDb=mDBHelper.getWritableDatabase();
//ContentValues ContentValues=新ContentValues();
//contentValues.put(“id”,verseid.get(position));
//contentValues.put(“bookname”,reference.get(position));
//contentValues.put(“versenumber”,ve