पर क्लिक करें, इसलिए मेरे ऐप में कुछ राज्यों के दौरान, मैं अपने सेटिंग-मेनू में कुछ चेकबॉक्स प्राथमिकताओं को अक्षम करना चाहता हूं। हालांकि, यदि उपयोगकर्ता उन्हें क्लिक करता है, तो मैं एक स्पष्टीकरण टोस्ट दिखाना चाहता हूं। अगर मैं बस सेट (सक्षम) सेट करता हूं; चेकबॉक्स प्रेफरेंस पर, मुझे सही दिखने और महसूस होता है। लेकिन मैं क्लिक पर दिखाने के लिए एक टोस्ट नहीं मिल सकता है। दूसरी तरफ, मैं मैन्युअल रूप से चेकबॉक्स को संदर्भित करने में विफल रहा हूं जैसे यह अक्षम है।वरीयता को अक्षम करें, लेकिन अभी भी
10
A
उत्तर
18
वरीयता को अक्षम करने के बजाय, आप वरीयता के विचारों को भी अक्षम कर सकते हैं।
public class DisabledAppearanceCheckboxPreference extends CheckBoxPreference {
protected boolean mEnabledAppearance = false;
public DisabledAppearanceCheckboxPreference(Context context,
AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
boolean viewEnabled = isEnabled()&&mEnabledAppearance;
enableView(view, viewEnabled);
}
protected void enableView(View view, boolean enabled){
view.setEnabled(enabled);
if (view instanceof ViewGroup){
ViewGroup grp = (ViewGroup)view;
for (int index = 0; index < grp.getChildCount(); index++)
enableView(grp.getChildAt(index), enabled);
}
}
public void setEnabledAppearance(boolean enabled){
mEnabledAppearance = enabled;
notifyChanged();
}
@Override
protected void onClick() {
if (mEnabledAppearance)
super.onClick();
else{
// show your toast here
}
}
}
0
यहां तक कि अगर आपके वरीयता अक्षम होती है, तो आप OnTouchEvents प्राप्त कर सकते हैं:
public class MyPreferenceFragment extends PreferenceFragment {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
final ListView listView = (ListView) view.findViewById(android.R.id.list);
listView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
int position = listView.pointToPosition((int) event.getX(), (int) event.getY());
ListAdapter adapter = listView.getAdapter();
Preference preference = (Preference) adapter.getItem(position);
if (!preference.isEnabled())
Toast.makeText(getActivity(), "Sorry, this setting is not available!", Toast.LENGTH_LONG).show();
return false;
}
});
return view;
}
...
}
संबंधित मुद्दे
- 1. एक WPF बटन अक्षम करें, लेकिन अभी भी क्लिक ईवेंट
- 2. व्यूस्टेट मोड अक्षम है लेकिन अभी भी व्यूस्टेट तत्व
- 3. कैस्परजेएस: रिमोट पेज की जावास्क्रिप्ट को अक्षम करें लेकिन अभी भी casper.evaluate का उपयोग करें?
- 4. पोस्टग्रेएसक्यूएल: ड्रॉप डेटाबेस लेकिन डीबी अभी भी
- 5. समर्थन रूपांतरण, लेकिन अभी भी ToString
- 6. सी # में एक सूची दृश्य को अक्षम करना, लेकिन अभी भी वर्तमान चयन
- 7. प्रमाणीकरण अभी भी दिखा रहा है हालांकि अक्षम
- 8. को अभी भी क्रेडेंशियल्स-ओएसएक्सकीचैन
- 9. रेल बटन_to: अक्षम => सत्य अभी भी बटन
- 10. छूएं अक्षम करें लेकिन UITextField
- 11. वेक लॉक को अभी भी
- 12. टेक्स्ट इनपुट फ़ील्ड को अक्षम करना अक्षम है, लेकिन
- 13. क्लोजर समेकन समर्थन अभी भी ऐप इंजन पर अक्षम है?
- 14. अलगाव लेवल का उपयोग करना। स्नैपशॉट लेकिन डीबी अभी भी
- 15. अभी भी मूल कार्यान्वयन
- 16. क्लिक पर AJAX भेजें, लेकिन अभी भी href
- 17. एपीसी सक्षम लेकिन अपाचे अभी भी फ़ाइलें खोल रहा है?
- 18. एसक्यूएल सर्वर - चर घोषित, लेकिन अभी भी कहते हैं
- 19. मैं अभी भी
- 20. DOCTYPE .dtd को अनदेखा करें, लेकिन .dtd फ़ाइल अभी भी मौजूद है
- 21. IvParameterSpec को यादृच्छिक बनाने के लिए कैसे करें लेकिन अभी भी
- 22. स्थैतिक पुस्तकालय, लेकिन मुझे अभी भी हेडर की आवश्यकता है?
- 23. यूआरएल ब्राउज़र के साथ सुलभ है लेकिन अभी भी URLNonnection
- 24. यह पैटर्न संपूर्ण लगता है, लेकिन मैं अभी भी चेतावनी
- 25. अभी भी valgrind
- 26. WPF आवेदन अभी भी
- 27. पियर - अभी भी प्रासंगिक?
- 28. अभी भी परीक्षण
- 29. आईओएस - UITextView स्क्रॉलिंग अक्षम करें लेकिन छूने को सक्षम करें
- 30. wget अभी भी डाउनलोड फ़ाइल को अस्वीकार करें
रचनात्मक और स्वच्छ समाधान, धन्यवाद! – pgsandstrom