2 回答
TA贡献1875条经验 获得超5个赞
好的,所以我现在知道了。您的资源中有一个数组列表,用于填充微调器。单击该项目时,代码将获取该项目在数组列表中的位置,并将其设置在共享首选项中,然后在 ActivityContent.java 中进行访问。
在 ActivityContent.java 中,您从共享首选项中获得的价值是项目在数组列表中的位置。
首先只是为了帮助您学习,我将解释您可以用它做什么。其次,我将解释你打算做什么。
第一的
您在 arraylist 中有 item 的位置,因此您可以在 ActivityContent.java 类中使用它来做什么,请执行此操作。
活动内容.java
String[] stringArray = getResources().getStringArray(R.array.country_arrays)
SharedPreferences sp = getSharedPreferences("My_Prefs", Activity.MODE_PRIVATE);
int sizeItemSelected= sp.getInt("VALUE", 24);
//if array contains strings if not just make this variable an Int
String sizeToSetTextViewSizeTo = stringArray[sizeItemSelected];
int tvSize = Integer.parseInt(sizeToSetTextViewSizeTo);
TextView titleTV = (TextView) findViewById(R.id.titleTextView);
titleTV.setTextSize(tvSize);
第二
您只需传递所选项目(您希望在活动内容中将 textview 设置为的大小)而不是传递位置。
我认为您最初打算使用代码做什么
case 1:
SharedPreferences.Editor editor1 = sharedPref.edit();
editor1.putInt("VALUE", spinnerBackgroundChange.getSelectedItem());
editor1.commit();
break;
而不是这个
case 1:
SharedPreferences.Editor editor1 = sharedPref.edit();
editor1.putInt("VALUE", spinnerBackgroundChange.getSelectedItemPosition());
editor1.commit();
break;
唯一的事情是我从来没有见过这样的案例:在它自己的内部
OnItemSelectedListender()
正如你所拥有的。但我不明白为什么这会影响代码的第一个或第二个选项。
TA贡献1847条经验 获得超7个赞
更新了解决问题的链接 抱歉没有代码。我回家后可以添加几行,但最好的选择是第 3 行,这是您需要研究和玩的东西。
您不能直接与来自另一个活动的视图交互。该活动布局并未膨胀,因此您最终只会出现空指针异常。你必须间接地这样做。有 3 种方法可以立即做到这一点。
SharedPreferences 像您一样在您的微调器的共享首选项中设置一个值。但是在您的 activitycontent.java 中,您可以获取共享首选项并查看某个值是否位于某个键值对中。如果是这样,则在 activitycontent.java 中将文本大小设置为该值。如果它为 null 或空,那么它将是您为它设置的 contentdoa.xml 值的值。这将是最简单的,因为您不需要为数据库编写顶级代码,也不必完全重新编写整个应用程序
活动内容.java
将此添加到 onCreate
SharedPreferences sp = getSharedPreferences("My_Prefs", Activity.MODE_PRIVATE);
int titleTextSize = sp.getInt("VALUE", 24);
TextView titleTV = (TextView) findViewById(R.id.titleTextView);
titleTV.setTextSize(titleTextSize);
以编程方式设置 TextViewSize
看看那篇文章并通读答案和评论。您还可以尝试的另一件事是将 Id 添加到线性布局,然后先引用它,然后再引用类似的内容。
linearLayout.findViewById..... you know how the rest goes
创建一个 SQLite 数据库并将您的值存储在其中。对于您的所有修改以及在每个活动中可以更改的任何内容,您都有该视图活动检查是否设置了值,如果设置了视图 textSize 为该值。我会推荐更多,因为你有很多可以改变的东西。
我更推荐的是研究并使用它进行应用程序设置。 应用程序设置的默认 SharedPrefences
添加回答
举报