gpt4 book ai didi

android - 如何将共享首选项值设置为布局

转载 作者:行者123 更新时间:2023-11-30 04:31:38 25 4
gpt4 key购买 nike

我已经将有关共享首选项的所有内容都放在适当的位置,并且在我的一项 Activity 中,我还能够在 logcat 中像这样检索共享首选项值。

 String i = prefs.getString("bgColor", "#f2345");
System.out.println(i);

但是在这个 Activity 中我使用的是这样的布局

SimpleCursorAdapter sca = new SimpleCursorAdapter(this, R.layout.country_row,c, from, to);      
setListAdapter(sca);

其中“country_row”是我的 xml 布局文件,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView android:id="@+id/year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff000099"
android:background="#ffffff80"
android:padding="10dp"
android:textSize="16sp"
android:text="1964"/>

<TextView android:id="@+id/country"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#ffffff80"
android:background="#ff000099"
android:padding="10dp"
android:textSize="16sp"
android:text="Sweden"/>

现在使用我已经从首选项中获得的值,我想在这里更改例如显示的背景颜色或字体大小。我现在想要的只是将这些共享的偏好值暗示到我的布局 xml 文件中。我怎么能这样做,我做不到?


实际上我可以像这样从共享偏好中获取值

boolean i = prefs.getBoolean("fontBold", false);
System.out.println(i);
if (i){
TextView tv = (TextView)findViewById(R.id.year);
tv.setTypeface(null, Typeface.BOLD);//null pointer
}

在光标适配器中,我已经在应用布局 country_row.xml。那么我如何使用我得到这个布局的首选项值。我从复选框中获取的 bool 值是正确的,因为我也打印出来查看它。但是当我尝试像上面那样做时它不起作用并且程序崩溃并提示空指针异常。

我被困在这里的是....我得到了正确的首选项值但不知道如何使用它或将它应用到我现有的布局...或者我是否需要制作不同的布局.. .我不确定。

最佳答案

我想你想做的是在代码中动态改变一些布局参数。通常,您可以通过代码或 .xml 文件为 View (Layout、TextView、EditText 等)设置属性。以布局为例。首先在布局中添加一个 id 属性。

<LinearLayoout android:id="@+id/layoutID" .../>

然后

LinearLayout layout=(LinearLayout)findViewById(R.id.layoutID) //get the layout object.
layout.setBackgroundColor (color from your preferences);

以上是基本思路。请阅读 SDK 文档以查找更多信息。

关于android - 如何将共享首选项值设置为布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7617547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com