从可检查的菜单中处理选定的项目
Handling selected items from a checkable menu
我正在使用 this 教程创建一个包含可检查项的子菜单。所以,到目前为止一切正常,但我不知道如何处理选定的项目,因为我是可序列化的新手。这是教程
的 link
public static final String SETTING_CHECK_BOX = "SETTING_CHECK_BOX";
private ArrayList < SettingCheckBox > settingList;
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
settingList = new ArrayList < SettingCheckBox > ();
settingList.add ( new SettingCheckBox ( "Option A" ) );
settingList.add ( new SettingCheckBox ( "Option B" ) );
// ... add more items
// restore any previously saved list
if ( savedInstanceState != null ) {
settingList = (ArrayList < SettingCheckBox >) savedInstanceState.getSerializable ( SETTING_CHECK_BOX );
}
// ...
}
protected void onActivityResult ( int requestCode , int resultCode , Intent data ) {
if ( resultCode != RESULT_OK || data == null )
return;
settingList = (ArrayList < SettingCheckBox >) data.getSerializableExtra ( SETTING_CHECK_BOX );
//how can I log print the list of items that have been checked
// What should go here ? such that i can do other things after getting a list of items that were checked ?
//This is my try
Object[] mStringArray = settingList.toArray();
for(int i = 0; i < mStringArray.length ; i++){
Log.d("***Checked items*",(String)mStringArray[i]);
}
}
您从该代码中得到任何错误吗?如果不是,则意味着您的 settingList
已使用来自 data.getSerializableExtra ( SETTING_CHECK_BOX );
的解析值正确初始化,这是 SettingCheckBox
对象的列表。根据您提供的 link,包含 SettingCheckBox
对象 class 的代码。您如何处理对象内的数据取决于您的用例。
编辑:回应评论。
如果 names,你的意思是 SettingCheckBox
文本描述,你可以遍历你的 settingList
直接这样:
for(int i = 0; i < settingList.size(); i++){
Log.d("***Checked items*", settingList.get(i).getDescription());
}
@McAwesomville,谢谢你 help.Got 它的所有工作!这是我根据您的建议得出的代码 :) 干杯!
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK || data == null)
return;
settingList = (ArrayList<SettingCheckBox>) data.getSerializableExtra(SETTING_CHECK_BOX);
for (int i = 0; i <settingList.size(); i++){
if (settingList.get(i).getChecked()){
Log.d("**Checked Item**",String.valueOf(settingList.get(i).getDescription()));
}
}
}
我正在使用 this 教程创建一个包含可检查项的子菜单。所以,到目前为止一切正常,但我不知道如何处理选定的项目,因为我是可序列化的新手。这是教程
的 link
public static final String SETTING_CHECK_BOX = "SETTING_CHECK_BOX";
private ArrayList < SettingCheckBox > settingList;
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
settingList = new ArrayList < SettingCheckBox > ();
settingList.add ( new SettingCheckBox ( "Option A" ) );
settingList.add ( new SettingCheckBox ( "Option B" ) );
// ... add more items
// restore any previously saved list
if ( savedInstanceState != null ) {
settingList = (ArrayList < SettingCheckBox >) savedInstanceState.getSerializable ( SETTING_CHECK_BOX );
}
// ...
}
protected void onActivityResult ( int requestCode , int resultCode , Intent data ) {
if ( resultCode != RESULT_OK || data == null )
return;
settingList = (ArrayList < SettingCheckBox >) data.getSerializableExtra ( SETTING_CHECK_BOX );
//how can I log print the list of items that have been checked
// What should go here ? such that i can do other things after getting a list of items that were checked ?
//This is my try
Object[] mStringArray = settingList.toArray();
for(int i = 0; i < mStringArray.length ; i++){
Log.d("***Checked items*",(String)mStringArray[i]);
}
}
您从该代码中得到任何错误吗?如果不是,则意味着您的 settingList
已使用来自 data.getSerializableExtra ( SETTING_CHECK_BOX );
的解析值正确初始化,这是 SettingCheckBox
对象的列表。根据您提供的 link,包含 SettingCheckBox
对象 class 的代码。您如何处理对象内的数据取决于您的用例。
编辑:回应评论。
如果 names,你的意思是 SettingCheckBox
文本描述,你可以遍历你的 settingList
直接这样:
for(int i = 0; i < settingList.size(); i++){
Log.d("***Checked items*", settingList.get(i).getDescription());
}
@McAwesomville,谢谢你 help.Got 它的所有工作!这是我根据您的建议得出的代码 :) 干杯!
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK || data == null)
return;
settingList = (ArrayList<SettingCheckBox>) data.getSerializableExtra(SETTING_CHECK_BOX);
for (int i = 0; i <settingList.size(); i++){
if (settingList.get(i).getChecked()){
Log.d("**Checked Item**",String.valueOf(settingList.get(i).getDescription()));
}
}
}