小编dan*_*eds的帖子

Android:无法从PreferenceActivity中找到显式活动类... startActivity

我正在尝试从PreferenceActivity开始一个新的Activity.但是,它失败了"无法找到显式活动类.您是否在AndroidManifest.xml中声明了此活动?"

嗯,是的,我宣布:

<application [......] android:debuggable="true">
    <activity android:name=".AlarmSettings"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".FlashLightActivity"></activity>

    <receiver
        android:name="AlarmReceiver"
        android:process=":remote" >
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

AlarmSettings是我的PreferenceActivity.AlarmSettings以这种方式调用FlashLightActivity:

Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这是FlashLightActivity:

public class FlashLightActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.flashlight);
   }    
}
Run Code Online (Sandbox Code Playgroud)

... 我不知道该怎么办.有任何想法吗?

java android preferenceactivity android-activity

8
推荐指数
2
解决办法
3万
查看次数

如何在*onPreferenceChange之后调用函数*?

我是Android开发的新手.在我的应用程序中,当用户更改首选项时,应调用函数来更新某些变量.

这是我目前的代码:

mypref.setOnPreferenceChangeListener(
   new OnPreferenceChangeListener() {
      public boolean onPreferenceChange(Preference arg0, Object arg1) {
         if(arg1.toString().matches("...") == false) {
            ...
            return false;
         }

         ...

         updateVariables();
         return true;
     }
});
Run Code Online (Sandbox Code Playgroud)

问题是,当updateVariables()调用时,首选项值尚未更新,并且函数会看到旧值.

private void updateVariables()
{
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
    Map<String, ?> savedKeys = sharedPref.getAll();

    for (Map.Entry<String, ?> entry : savedKeys.entrySet()) {
       // for each preference...
    }
}
Run Code Online (Sandbox Code Playgroud)

最具侵入性的解决方案是什么?谢谢!

android

6
推荐指数
1
解决办法
4056
查看次数

WPF 上下文菜单怎么可能显示在窗口外?

据我了解,与旧的 Windows 窗体应用程序不同,WPF 应用程序中的控件不绑定到系统“窗口”资源(例如,您无法使用 Spy++ 找到它们的句柄)。

那么,这些菜单的一部分怎么可能显示在外面在父窗口呢?为什么它们在到达窗口边界时不立即切断?

当然,一种可能性是它们并不是真正的 WPF 菜单,而是标准的 Windows 资源。然而,这与我可以像任何其他 WPF 控件一样设置其中一个菜单的样式这一事实相冲突,并且快速查看系统消息日志似乎证实,据 Windows 所知,它们实际上完全相同资源具有相同句柄的。

然后,我走得更远。我对菜单应用了旋转:

<Style TargetType="{x:Type ContextMenu}">
    <Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
    <Setter Property="RenderTransform">
        <Setter.Value>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="-18.435"/>
                <TranslateTransform/>
            </TransformGroup>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

这是相当有趣的结果:

菜单被裁剪成矩形

发生什么了?

windows wpf

3
推荐指数
1
解决办法
1116
查看次数