2016-05-02 10 views
1

私はXamarinで新しいですが、私は駐車アプリケーションを作成してトレーニングしています。今は別のレイアウトにアクセスしようとすると問題が発生します。Xamarin新しいリソースレイアウトをクリックして別のレイアウトを開く方法

これは、私が「ゾーン」アクションバーをクリックすることで、私のメニューからアクセスしていますが、私のMainActivity.csここ

[Activity(Label = "CustomActionBarParking", MainLauncher = true, Icon = "@drawable/icon", Theme ="@style/CustomActionBarTheme")] 
     public class MainActivity : Activity 
     { 
    private LinearLayout mBarZone; 
      protected override void OnCreate(Bundle bundle) 
      { 
       base.OnCreate(bundle); 
       ActionBar.SetDisplayShowCustomEnabled(true); 
       SetContentView(Resource.Layout.action_bar); 
       mBarZone = FindViewById<LinearLayout>(Resource.Id.linearLayout2); 
       mBarZone.Click += (object sender, EventArgs args) => 
       { 
        SetContentView(Resource.Layout.zones_list); 
       }; 
    }}} 

です。そして "ゾーンリスト"レイアウトを開きます。

ここから青いゾーンのアクションバーボタンをクリックして別のレイアウト:vehicle_not_parkedにアクセスしたいと思います。しかし、OnCreateメソッドのMainAcitivyクラスで初期化したときに、オブジェクトがnullableであるというエラーが発生したため、初期化する必要がある場所がわかりません。それから私はこのようになりますZonesActivity.cs作成:

[Activity(Label = "CustomActionBarParking")] 
    public class ZonesActivity : Activity 
    { 
     private LinearLayout mBlueZone; 
     protected override void OnCreate(Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 
      SetContentView(Resource.Layout.zones_list); 
      mBlueZone = FindViewById<LinearLayout>(Resource.Id.linearLayout2); 
      mBlueZone.Click += (object sender, EventArgs args) => 
      { 
       SetContentView(Resource.Layout.vehicle_not_parked); 

      }; 

     }}} 

をしかし、私はメインActivityクラスでこのクラスを呼び出すようにしようと試みたとき、私はバンドルsavedInstanceStateプロパティに対処する必要があります。私は1つのビューから2番目のビューと3番目のビューの2つのビューからどのようにすればよいか分かりません。

答えて

1

私が正しく理解していれば、ボタンのクリックイベントでレイアウトを入れ替えることができますか?私はそれが私がスワッピングんはい

mBarZone.Click += delegate { 
     StartActivity(typeof(ZonesActivity)); 
}; 

Docs on starting a new activity

+0

新しい活動を開始するのがベストだと思います。私はその活動をどこから始める必要がありますか? OnCreate()メソッドのMainActitivyクラスでは?私がこのアクティビティを初期化したときに、レイアウトアクションバーをタップしてvehicle_not_parkedビューを取得するとエラーが発生しました。 :System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません – BinaryTie

+0

このサンプルアプリケーションを見てみましょうhttps://developer.xamarin.com/guides/android/getting_started/hello,android_multiscreen/hello,android_multiscreen_quickstart/アプリは通話履歴のアクティビティを開始しますhttps://github.com/xamarin/monodroid-samples/blob/master/PhonewordMultiscreen/Phoneword/MainActivity.cs#L50 –

+0

このhttps://github.com/をご覧くださいxamarin/monodroid-samples/blob/master/PhonewordMultiscreen/Phoneword/MainActivity.cs#L50アクションバーとフラグメントを使用します –

関連する問題