Pen*_*m10 1 android views preferences checkboxpreference
我有一个屏幕,您可以在其中为我的Android应用程序启用/禁用模块.
为此,我使用CheckboxPreference屏幕.这一切都很好,但如果添加的描述比2行更长,则摘要字段会被切断.
假设每个模块有4-5行描述,我想在帮助窗口中显示它.
我尝试将click事件绑定到CheckboxPreference,但是这会触发整行,因此不仅在单击复选框时,还有更多,无论您在哪一行单击该复选框,都会切换.
所以现在我想知道这是否可以解决.因此,如果用户需要更多信息,只需点击文本并打开帮助程序,如果要切换设置,则会点击复选框.
你会怎么做?如果他们确实有效,我也会对其他想法持开放态度.
icy*_*sor 13
Hmn今天遇到了同样的问题.我的替代解决方案是只允许在摘要中显示更多文本.
只需创建自己的CheckBoxPreference子类,如下所示:
public class CheckBoxPreferenceWithLongSummary extends CheckBoxPreference{
public CheckBoxPreferenceWithLongSummary(Context context) {
super(context);
}
public CheckBoxPreferenceWithLongSummary(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CheckBoxPreferenceWithLongSummary(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
summaryView.setMaxLines(10);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的PreferenceScreen中(我假设您使用xml来设置Preference布局 - 不确定它是否可能完全以编程方式完成)只需将旧的替换为<CheckBoxPreference.../>您的新实现,如<com.example.whatever.CheckBoxPreferenceWithLongSummary ... />
似乎对我来说工作得很好,尽管我不确定findViewById(android.R.id.summary)因为在parentClass中使用com.android.internal.R.id.summary似乎无法直接访问从Java内部?希望它不仅仅是巧合:)
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |