是ActivityGroup 的BUG?是对机制理解不深刻?还是逻辑错误?还是。。。不知道了?

首先,先喷一下张艺谋的片子,香港服务器租用,你他妈太黑了~!什么史上最干净的爱情片,我说是史上最烂的爱情片,只能把无知当纯情。拍电影拍得一点诚意都没有,只会抄韩国的爱情片,记得有一部韩国片跟你这部剧情都差不多~!你就使劲抄吧~!!浪费我160大洋,进去睡觉。

喷到这里。

这一两天碰到一个问题,是一个关于ActivityGroup 的问题,因为项目需要,服务器空间,必须把一个自定义的PreferenceActivity 的界面嵌套在ActivityGroup 里面,可是当我嵌套在里面的时候发现了一个问题。就是PreferenceActivity 的元素不会自动更新UI,这是比较致命的,不知道为什么会出现这个问题。

查了很久,首先我怀疑是我的自定义preference写的有问题,改了一遍,然后再运行还是一样。

单独运行该 preferenceActivity 试了一下,界面可以按照自己的需求更新UI,那就是说不是我这个自定义的preference 的逻辑问题?这点还不敢确定。

那么我怀疑是 ActivityGroup 不允许底下Activity 元素的UI自动更新,那么新建一个普通的Activity 来试试,在这普通的Activity 里面只有一个按钮同样是点击之后弹出对话框然后改变按钮的字,试了一下,。更新成功。。。耶?那么说ActivityGroup 还是允许底下Activity UI 元素更新的?那么问题出在哪呢?

我又再调试跟踪了代码,确定有执行settext的代码?那是不是说preferenceActivity 和ActivityGroup有冲突?不知道所然,下面贴出我碰到问题的全部代码,由于在公司有加密软件无法将DEMO提供给大家,香港服务器,大家可以根据代码新建一个工程,一起来研究这个问题。

自定义的PreferenceScreenExt 源码:

packageasai.cn.seekbardemo;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importandroid.app.Dialog;importandroid.content.Context;importandroid.content.DialogInterface;importandroid.content.SharedPreferences;importandroid.preference.Preference;importandroid.preference.PreferenceGroup;importandroid.util.AttributeSet;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.view.View.OnClickListener;importandroid.widget.AdapterView;importandroid.widget.ListView;importandroid.widget.RelativeLayout;importandroid.widget.SimpleAdapter;importandroid.widget.TextView;importandroid.widget.AdapterView.OnItemClickListener;PreferenceScreenExtextendsPreferenceGroupimplementsOnItemClickListener,DialogInterface.OnDismissListener{privateDialogdialog;privateTextViewtitle,summary;privateSharedPreferencesshare;privateRelativeLayoutarea;privateListViewlistView;Listlist;listStr;privateCharSequence[]mEntries;privateStringmValue;privateSimpleAdaptersimple;publicPreferenceScreenExt(Contextcontext,AttributeSetattrs){this(context,attrs,android.R.attr.preferenceScreenStyle);//TODOAuto-generatedconstructorstub}defStyle){super(context,attrs,android.R.attr.preferenceScreenStyle);//TODOAuto-generatedconstructorstub);){mEntries=getContext().getResources().getTextArray(resouceId);}}@OverrideprotectedViewonCreateView(ViewGroupparent){//TODOAuto-generatedmethodstuViewview=LayoutInflater.from(getContext()).inflate(R.layout.preference_screen,null);area=(RelativeLayout)view.findViewById(R.id.area);share=getPreferenceManager().getSharedPreferences();title=(TextView)view.findViewById(R.id.title);summary=(TextView)view.findViewById(R.id.summary);title.setText(getTitle());summary.setText(share.getString(getKey(),getSummary():getSummary().toString()));area.setOnClickListener(newOnClickListener(){@OverrideonClick(Viewv){//TODOAuto-generatedmethodstubshowDialog();}});returnview;}bindView(ListViewlistview){mEntries.length;;listStr();){HashMap();map.put(,mEntries[i].toString());listStr.add(map);}simpleSimpleAdapter(getContext(),listStr,R.layout.dialog_view,[]{R.id.text});listview.setAdapter(simple);listview.setOnItemClickListener(this);}showDialog(){listViewListView(getContext());bindView(listView);dialogDialog(getContext(),android.R.style.Theme_NoTitleBar);dialog.setContentView(listView);dialog.setOnDismissListener(this);dialog.show();}@Overrideposition,longid){//TODOAuto-generatedmethodstub).toString();SharedPreferences.Editoreditor=getEditor();editor.putString(getKey(),mValue);callChangeListener(mValue);PreferenceScreenExt.this.setOnPreferenceChangeListener(newOnPreferenceChangeListener(){@OverridepublicbooleanonPreferenceChange(Preferencepreference,ObjectnewValue){//TODOAuto-generatedmethodstub){temp.onPreferenceChange(PreferenceScreenExt.this,newValue);};}});editor.commit();dialog.dismiss();}@OverrideonDismiss(DialogInterfacedialog){//TODOAuto-generatedmethodstub}privateOnPreferenceChangeListenertemp;OnPreferenceChangeListener{publicbooleanonPreferenceChange(Preferencepreference,ObjectnewValue);}setOnPreferenceChangeListener(OnPreferenceChangeListenerpreference){preference;}setValue(Stringvalue){summary.setText(value);persistString(value);}}

对应的XML布局文件:

我无所事事的度过了今天,是昨天死去的人们所期望的明天。

是ActivityGroup 的BUG?是对机制理解不深刻?还是逻辑错误?还是。。。不知道了?

相关文章:

你感兴趣的文章:

标签云: