簡體   English   中英

MonoDroid - 初學者

[英]MonoDroid - Beginner

我正在使用 Visual Studio 2010 和 Mono Droid v1.0.1 開始在 C # 中為 Android 平台編程。

我有個問題。 從主活動想要調用另一個活動('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>

  • 主要.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>

不是 MonoDroid 開發人員,但我確實注意到您在第二個活動 onCreate 上缺少“覆蓋”關鍵字,也沒有調用父級。

添加大多數(如果不是全部,不確定)“清單選項”的單聲道方式是通過實現活動(或服務)的 class 的屬性。

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

我想你會想從 Prueba.cs 中刪除 MainLauncher = true 。 這用於指示應用程序啟動時應該啟動什么活動。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM