2012-02-28 8 views
0

私はこの件に関して他にも数多くの質問をしましたが、これまでの回答では問題を解決していませんでした。私は基本的には、画面の方向が変更されるたびに私の活動を再現させたくありません。私が見つけたものとは、以下の動作するはずです:マニフェストファイルMonoDroid OnConfigurationChanged Not Firing

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" android:versionCode="1"> 
    <application android:label="Service Portal"> 
    <activity android:name =".CallManagement" android:configChanges="orientation"></activity> 
    </application> 
    <uses-sdk android:minSdkVersion="10" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
</manifest> 

CallManagement.cs

public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig) 
    { 
     base.OnConfigurationChanged(newConfig); 
    } 

私はアンドロイド変更しようとしました:configChangesは "オリエンテーション| keyboardHidden" に。 APIレベル10をターゲットにしているため、「screenSize」も含めて何度も見たことはありません。

私はOnConfigurationChanged voidにブレークポイントを設定し、決してキャッチせず、OnCreateは確実に実行を続けます。何が間違っているのですか、あるいは私はこの機能が何をすべきか誤解していますか?

答えて

0

特定の向きで画面ロックを試しましたか?

<activity android:name="MyActivity" android:screenOrientation="landscape">. 

は私は向きを要求した後に設けられ、INTとの向きをロックするようレイアウトとして良い見つかっていない、プログラムで画面をロックします。

画面をロックするのではなく、向きが変わったときにアクティビティのサイズを正しく変更したい場合は、デザインを再検討することがあります。ゲームの状態を保存し、アンドロイドがアクティビティを再作成できるようにすることは、動的スクリーンのベストプラクティスとみなされます。

+0

私は間違いなく画面の向きをロックしたくありません。ユーザーは、最も快適な方向でアプリと対話できる必要があります。この変更に伴う最大の問題は、Dialogsと動的Spinnerです。 OnCreateには、他の要素に基づいてオプションが変更されるArrayAdapterがスピンナに与えられます。ポジション1の項目を選択して向きを変えた場合、OnCreateでOnCreate中の新しい状況に基づいてオプションのリストを作成し、現在ポジション1にあるものはそこにあったものではありません。 – jmease

+0

- 独自のオプションID(名前またはハッシュ)に基づいて選択範囲を保存し、作成時に保存された値と一致するオブジェクトを選択できますか?私はスクリーンの変更でアプリケーションをほとんど制御できないことに非常に賛成しますが、もう一度、バグではなく「機能」であることを意図しています。 – Noah

+0

実際にはありません。ランドスケープで選択されたアイテムは、旋回されたときにスピナーのオプションでなくても、ArrayAdapterはonCreateで再構築されます。スピナーのオプションはワークフローを制御するためのもので、ユーザーの現在の位置に基づいてオプションが変更されます。アイテムがスピナーで選択されるとすぐにユーザーの選択があります。私はスピンナーに向きを変えて一般的な "選択"項目を選択させるように強制することができると思います。しかし、それは対話の問題に役立ちませんか? – jmease