2016-04-28 12 views
0

今週は、C#を学んでいて、アプリを作りました。私はそれが私がコードの先頭に戻る必要があることがわかったoriganalレイアウトに私を送り返したいと思う。事前にt​​hx。Android C#xamarin help!コードの先頭に戻るにはボタンが必要です

  namespace TheAppOfJack 
      { 
      [Activity(Label = "The App Of Jack", MainLauncher = true, Icon = "@drawable/icon")] 
      public class MainActivity : Activity 
      { 

      int count = 1; 

      protected override void OnCreate(Bundle bundle) 
      { 

      base.OnCreate(bundle); 

      SetContentView(Resource.Layout.Main); 

      Button button1 = FindViewById<Button>(Resource.Id.MyButton); 
      button1.Click += delegate { button1.Text = string.Format("You have clicked this random button {0} times (͡° ͜ʖ ͡°)", count++); }; 

      Button button2 = FindViewById<Button>(Resource.Id.button1); 
      button2.Click += delegate 
      { 
      SetContentView(Resource.Layout.Gallery); 
      Button button3 = FindViewById<Button>(Resource.Id.back); 
      button3.Click += delegate { SetContentView(Resource.Layout.Main); }; 

      Button button4 = FindViewById<Button>(Resource.Id.next1); 
      button4.Click += delegate 
      { 
      SetContentView(Resource.Layout.Gallery2); 
      button3.Click += delegate { SetContentView(Resource.Layout.Main); }; 
      Button button5 = FindViewById<Button>(Resource.Id.next2); 
      button5.Click += delegate 
      { 

      SetContentView(Resource.Layout.Gallery3); 
      Button button6 = FindViewById<Button>(Resource.Id.home); 
      button6.Click += delegate { 

      //this is where i want the code to send me back to the top }; 
      }; 
      }; 
      }; 
      } 
      } 
      } 
+1

あなたは何を達成しようとしていますか? (なぜ、あなたはトップに戻るのですか?) 'for'ループは必要なものを行いますか? –

+0

私はコードレイアウトの先頭に戻る必要があります。なぜなら、私はそれをメールレイアウトに戻しただけなので、ブトンコードはまったく機能しません。これがforループで解決できるのであれば、それを使用したことのないiveとして私のコードに入れて、どこから始めるべきかわからないでしょう。 thx –

+0

あなたがしようとしていることは、Androidアーキテクチャにとって非常に相反するものだと思います。私は、あなたがしたいことに似たサンプルプロジェクトを見つけて勉強しなければならないと思います。 –

答えて

0

あなたが試みている方法は、Androidの仕組みではありません。 「レイアウト」の間をナビゲートすることはできません。代わりに、関連付けられたレイアウトを持つアクティビティ間をナビゲートします。このナビゲーションはStartActivity()メソッドを使用して行われます。

MainActivityは、アプリの起動時に最初に表示されるアクティビティです。これに関連するレイアウト(ここではMainという名前)には、次の画面に移動するボタンが1つだけ必要です。 IDがbtnForActivity2であるとします。 MyActivity2クラスで

protected override void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 

    SetContentView(Resource.Layout.Main); 

    Button btn = FindViewById<Button>(Resource.Id.btnForActivity2); 
    btn.Click += delegate 
    { 
     StartActivity (typeof(MyActivity2)); 
    }; 
} 

、あなたは二つの新しい活動にあなたを取るために2つのボタンを持つようにしたいとしましょう:MainActivityのためのあなたのOnCreateはこのようになります。 1つのアクティビティをMyActivity3と呼び、もう1つのアクティビティをMyActivity4とします。 Androidの中でどのように動作するかの基本的なナビゲーション

protected override void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 

    SetContentView(Resource.Layout.MyActivity2Layout); 

    Button btn = FindViewById<Button>(Resource.Id.btnForActivity3); 
    btn.Click += delegate 
    { 
     StartActivity (typeof(MyActivity3)); 
    }; 

    btn = FindViewById<Button>(Resource.Id.btnForActivity4); 
    btn.Click += delegate 
    { 
     StartActivity (typeof(MyActivity4)); 
    }; 
} 

これは次のとおりです。この場合は、あなたのMyActivity2OnCreate方法は、このようなものになります。

ところで、私は「戻る」ボタンについて話していないことに気づいたかもしれません。これは、iOSデバイスとは異なり、Androidデバイスにはその目的専用のボタンがあるため、明示的に実装していないためです。ただし、前のアクティビティに戻るボタンが必要な場合は、単にthis.Finish();を呼び出すだけで十分です。アクティビティに対してFinish()を呼び出すと、アクティビティスタックの一番上から削除され、下のアクティビティが表示されます。

+0

Thx、これは負荷を助けました。このサイトの基本を示すサイトの湖があるようです。 –

+0

私は助けてくれると嬉しいです。 :https://developer.xamarin.com/guides/android/getting_started/hello,android_multiscreen/ –

関連する問題