2011-06-29 18 views
-1

私はAndroidプラットフォーム用のC#でプログラミングを開始するためにVisual Studio 2010とMono Droid v1.0.1を使用しています。MonoDroid - 初心者

私は問題があります。他のアクティビティ( 'プルーバ')を呼び出す主なアクティビティからはうまくいきますが、画面には何も表示されません。つまり、「プルーバ」というタイトルの新しい画面を表示しますが、それには何も表示されませんでした(すべて黒で表示されます)。

これは私が使用しているコードです:

  • のAndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?> 
        <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="MonoAndroidApplication1.MonoAndroidApplication1.apk" android:versionCode="1" android:versionName="Primera"> 
    
    <application android:label="MonoAndroidApplication1"> 
    </application> 
    <uses-sdk android:minSdkVersion="4" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <activity android:name=".Prueba" /> 
    </manifest> 
    
  • Activity1.cs

    using System; 
    using Android.App; 
    using Android.Content; 
    using Android.Runtime; 
    using Android.Views; 
    using Android.Widget; 
    using Android.OS; 
    using System.IO; 
    
    namespace MonoAndroidApplication1 
    { 
    
    [Activity(Label = "MonoAndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")] 
    
    public class Activity1 : Activity 
    { 
        EditText et01; 
        EditText et02; 
        EditText et03; 
    
        Button bt01; 
        Button bt02; 
        Button bt03; 
    
        protected override void OnCreate(Bundle bundle) 
        { 
         base.OnCreate(bundle); 
    
         SetContentView(Resource.Layout.Main); 
    
         et01 = (EditText)FindViewById(Resource.Id.edittext01); 
         et02 = (EditText)FindViewById(Resource.Id.edittext02); 
         et03 = (EditText)FindViewById(Resource.Id.edittext03); 
         bt01 = (Button)FindViewById(Resource.Id.button01); 
         bt02 = (Button)FindViewById(Resource.Id.button02); 
         bt03 = (Button)FindViewById(Resource.Id.button03); 
    
         bt01.Click += (sender, e) => 
         { 
          et01.Text = string.Format("Click en 1"); 
         }; 
         bt02.Click += (sender, e) => 
         { 
          et02.Text = string.Format("Click en 2"); 
         }; 
         bt03.Click += (sender, e) => 
         { 
          et03.Text = string.Format("Click en 3"); 
          Intent i = new Intent(this, typeof(Prueba)); 
          StartActivity(i); 
         }; 
    
         Toast.MakeText(this, "Esto es un ejemplo", ToastLength.Short).Show(); 
        } 
        } 
    } 
    
  • Prueba.cs

    using System; 
    using Android.App; 
    using Android.Content; 
    using Android.Runtime; 
    using Android.Views; 
    using Android.Widget; 
    using Android.OS; 
    using System.IO; 
    
    namespace MonoAndroidApplication1 
    { 
        [Activity(Label = "Prueba", MainLauncher = true, Icon = "@drawable/icon")] 
        public class Prueba : Activity 
        { 
         public void onCreate(Bundle savedInstanceState) 
         { 
          SetContentView(Resource.Layout.Prueba); 
         } 
        } 
    } 
    
  • Prueba.axml

    <?xml version="1.0" encoding="utf-8"?> 
    <AbsoluteLayout 
    android:id="@+id/widget0" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
        <TextView 
         android:id="@+id/textoif" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="IF-Software" 
    > 
    </TextView> 
    

  • Main.axml

    <?xml version="1.0" encoding="utf-8"?> 
    <TableLayout 
        android:id="@+id/widget27" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="vertical" 
    > 
        <TableRow 
        android:id="@+id/widget28" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="horizontal" 
        > 
        <TextView 
         android:id="@+id/widget32" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Prueba IF" 
        > 
        </TextView> 
        </TableRow> 
        <TableRow 
        android:id="@+id/widget29" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="horizontal" 
        > 
        <EditText 
         android:id="@+id/edittext01" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:textSize="18sp" 
        > 
        </EditText> 
        <Button 
        android:id="@+id/button01" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="1" 
        > 
        </Button> 
        </TableRow> 
        <TableRow 
        android:id="@+id/widget30" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="horizontal" 
        > 
        <EditText 
        android:id="@+id/edittext02" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="18sp" 
        > 
        </EditText> 
        <Button 
        android:id="@+id/button02" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="2" 
        > 
        </Button> 
        </TableRow> 
        <TableRow 
        android:id="@+id/widget31" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="horizontal" 
        > 
        <EditText 
        android:id="@+id/edittext03" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="18sp" 
        > 
        </EditText> 
        <Button 
        android:id="@+id/button03" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="3" 
        > 
        </Button> 
    </TableRow> 
    </TableLayout> 
    
+0

あまりにも多くのコードを、あなたは、例えば、問題の原因を分離する必要がありますが、別のものにあなたの活動を交換しようとしましたか?その他のアクティビティが機能する場合は、ベースアクティビティが問題になる可能性は低いです。 – Guvante

+0

あなたは 'プルーバ'で 'base.OnCreate'を呼び出すことはありません、意図的なのでしょうか? – Guvante

答えて

6

ないMonoDroidの開発者が、私はあなたがキーワードの "オーバーライド" を欠落していることがわかります2番目のアクティビティonCreateと親を呼び出さない。

0

(すべてではない、わからない)「をマニフェストオプションを」ほとんどを追加するためのモノ風の道は、活性(またはサービス)を実装するクラスの属性を介して行われます。

Visual Studio Monoプラグインが自動的にマニフェストを生成するので、 に手動で改ざんしないことをお勧めします(他のオプションがない場合があります)。例えば

[Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")] 
public class MonoActivity : Activity 
{ 
    protected override void OnCreate(Bundle bindle) 
    { 
    base.OnCreate(bindle); 
    } 
} 
+0

実際、このWRITE_EXTERNAL_STORAGE設定はユーザ権限であり、上記のように設定すると、マニフェストファイルのユーザ権限ではなく、アクティビティ設定(android:権限)として表示されます。ああ、私はちょうど思い出しました、あなたはVS(すべての権限のチェックボックスのリスト)でプロジェクトのプロパティをユーザー権限のユーザーに設定しました。 – samosaris

+0

これらは実際には "使用許可"タグであり、 "ユーザー許可"ではありません。 – samosaris