MonoDroid - 初学者

时间:2011-06-29 16:34:39

标签: c# android xamarin.android

我正在使用Visual Studio 2010和Mono Droid v1.0.1开始使用C#进行Android平台编程。

我有问题。从主要活动想要调用另一个activty('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>
    

3 个答案:

答案 0 :(得分:6)

不是MonoDroid开发人员,但我注意到您在第二个活动onCreate上缺少“override”关键字,也没有调用父级。

答案 1 :(得分:0)

我想你想从Prueba.cs中删除MainLauncher = true。这用于指示应用程序启动时应启动的活动。

http://docs.mono-android.net/index.aspx?link=P%3aAndroid.App.ActivityAttribute.MainLauncher

答案 2 :(得分:0)

Mono-esque添加大多数(如果不是全部,不确定)“清单选项”的方式是通过实现活动(或服务)的类的属性。

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);
  }
}