2011-06-29 70 views
-1

我正在使用Visual Studio 2010和Mono Droid v1.0.1開始在Android平臺的C#中進行編程。MonoDroid - 初學者

我有一個問題。從主要活動要調用另一個活動('prueba'),它表現不錯,但我沒有在屏幕上顯示任何內容。也就是說,向我展示一個新的屏幕,標題爲「prueba」,但沒有顯示任何內容(全都是黑色的)。

這是我使用的代碼:

  • 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

你不是在'Prueba'中調用'base.OnCreate',那是故意的嗎? – Guvante

回答

6

不是MonoDroid的開發者,但我注意到,你錯過了 「覆蓋」 的關鍵字上第二項活動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:permission),而不是清單文件中的用戶權限。哦,我只記得,你在VS中設置了用戶權限用戶的項目屬性(它是一個所有權限的複選框列表)。 – samosaris

+0

它們實際上是「使用許可」標籤,而不是「用戶許可」,但除此之外,其他所有內容都是正確的。 – samosaris