我想將我的Android應用程序首選項屏幕的外觀更改爲深色文字顏色。我怎樣才能做到這一點? (我已經將背景更改爲白色)更改偏好設置活動文字顏色
6
A
回答
14
我假設您使用的活動擴展了PreferenceActivity
。您可以使用setTheme
方法在首選項屏幕上設置自定義主題。 只需在res/values/themes.xml
中定義一個。
它應該是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.DarkText">
<item name="android:textColor">#000000</item>
</style>
</resources>
然後把它在你的活動:
setTheme(R.style.Theme_DarkText);
0
我把Udinic的想法,但我提高了一點。 現在可以在任何時候設置(在本例中)PreferenceCategory的顏色,而不僅僅是在膨脹視圖時。
如何做到這一點?
首先,創建自定義的類像這樣的:
import android.content.Context;
import android.preference.PreferenceCategory;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MyPreferenceCategory extends PreferenceCategory {
private TextView categoryTitle;
public PincardPreferenceCategory(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public PincardPreferenceCategory(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public PincardPreferenceCategory(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected View onCreateView(ViewGroup parent) {
categoryTitle = (TextView)super.onCreateView(parent);
return categoryTitle;
}
public void setBackgroundColor(int color) {
categoryTitle.setBackgroundColor(color);
}
public void setTextColor(int color) {
categoryTitle.setTextColor(color);
}
}
一旦完成,你必須同時XML定義設置來使用它。
後,你只需要在你的java preferenceActivity使用這個循環:
for (int i = 0; i < getListView().getCount(); i++) {
Object view = getListView().getItemAtPosition(i);
if (view instanceof PincardPreferenceCategory) {
((PincardPreferenceCategory)view).setBackgroundColor(Color.BLUE);
((PincardPreferenceCategory)view).setTextColor(Color.RED);
}
}
這裏的想法。您可以爲您的任何設置和任何時間做到這一點。 使用此代碼之前,佈局必須已完全加載,否則,getListView()。getCount()將返回0.如果您在onCreate中使用它,例如,我將無法工作。 如果你想在啓動時這樣做,我建議你在onWindowFocusChanged方法中這樣做。
+0
當屏幕可以放置更多項目時將不起作用,因爲ListView實現了視圖回收並且不會創建* all *視圖 – 2014-07-22 16:04:40
相關問題
- 1. AmbilWarna - 偏好設置 - 設置顏色
- 2. 更改偏好標題的文字顏色
- 3. 如何更改Android的偏好的文字顏色?
- 4. Android - 如何動態更改偏好設置活動中的文本?
- 5. Android活動未保存偏好設置?
- 6. Android:顏色偏好?
- 7. 在android中更改偏好類別的文本顏色和水平顏色
- 8. 如何更改Android中偏好類別的文本顏色?
- 9. 如何設置android偏好摘要文本顏色?
- 10. Android Studio中,共享偏好設置文本顏色
- 11. 更改活動和非活動NSTextField的文本顏色
- 12. Sherlock動作欄更改文字顏色
- 13. 將顏色設置爲Android活動中的文字?
- 14. jquery - 更改文字顏色
- 15. JavaScript更改文字顏色
- 16. 更改文字顏色onclick
- 17. 更改活動中的背景顏色。
- 18. 更改活動div的背景顏色
- 19. JQuery - 更改活動鏈接顏色
- 20. 提醒用戶更改活動顏色
- 21. 更改活動背景顏色
- 22. 更改活動背景的顏色
- 23. Android偏好設置更新
- 24. 設置活動的背景顏色
- 25. 如何更改光標顏色而不更改文字顏色?
- 26. 通過偏好更改文字大小
- 27. 更改Android中的設置項目描述文字顏色?
- 28. 根據偏好值更改通知顏色
- 29. 如何根據用戶偏好更改RelativeLayout顏色?
- 30. 如何更改全局偏好圖標顏色Android
如果您想在構建佈局之後更改文本顏色,該怎麼辦? – 2013-09-01 01:42:29
@MarioB此代碼可以更改EditTextPreference之外的首選項的標題文本顏色。 EditTextPreference的標題(不是對話標題)的屬性名稱是什麼? – shantanu 2014-03-12 13:00:08