Java 从PreferenceActivity开始在主活动中做事情?

Java 从PreferenceActivity开始在主活动中做事情?,java,android,android-intent,android-preferences,Java,Android,Android Intent,Android Preferences,我有一行info.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,number\u config)在“我的案例”下方为微调器选择。(它使用微调器设置的值设置EditText的textsize) 然后我有一个preferences活动,其中我有一个switchpreference,我希望上面的一行在开关设置为“On”时处于“活动”状态,在开关设置为“off”时处于非活动状态。因此,文本大小在设置为off时不会改变。你会怎么做 多谢各位 我的微调器已选择:

我有一行
info.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,number\u config)在“我的案例”下方为微调器选择。(它使用微调器设置的值设置EditText的textsize)
然后我有一个preferences活动,其中我有一个switchpreference,我希望上面的一行在开关设置为“On”时处于“活动”状态,在开关设置为“off”时处于非活动状态。因此,文本大小在设置为off时不会改变。你会怎么做

多谢各位

我的微调器已选择:

    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {

            switch (position) {
            case 0:
                config_textsize = "10.0f".toString();
                break;

            case 1:
                config_textsize = "12.0f".toString();
                break;
                ...
            }

            String number_config = Float.valueOf(config_textsize);
 /*This line */ EditText info.setTextSize(TypedValue.COMPLEX_UNIT_SP, number_config);

            }
这是我在xml中的首选项:

  <SwitchPreference
     android:key="EditTextSize"
     android:title="Text Size" 
     android:summary="Change text size when editing" />

试试:

如果打开,则返回true;如果未打开,则返回false。这只是一个假设,我从未使用过SwitchPreference,但请尝试一下

编辑 创建一个返回整数的方法:

    private int getPosition(){

    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(YourActivity.this);
    boolean switchOn = prefs.getBoolean("EditTextSize",
            false);

     int position=-1;

    if(switchOn==false){

         position=0;
     }else if(switchOn==true){

        position=1
       }
    return position;}

请参阅我的编辑。我希望这能起作用,但在没有看到更多代码的情况下,我真的不知道……在这里设置på类时:getDefaultSharedReferences(YourActivity.this);我收到的错误是:在Scope中无法访问WidgetConfig类型的封闭实例我从未遇到过这样的错误…您是否用自己的活动替换了“YourActivity”,我的意思是,如果您的活动名为DemoActivity,您应该设置“DemoActivity.this”。请参阅我的编辑。创建一个返回位置值的方法,如edited Edit。然后在切换之前的onItemSelected中调用此方法。这行吗?
    private int getPosition(){

    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(YourActivity.this);
    boolean switchOn = prefs.getBoolean("EditTextSize",
            false);

     int position=-1;

    if(switchOn==false){

         position=0;
     }else if(switchOn==true){

        position=1
       }
    return position;}