6

Xamarin でアプリを開発しています。

DiallerActivity 、ContactsActivitySplashActivityの3 つのアクティビティと、Main.axmlと Contacts.axml の 2 つの .axml レイアウトがあります。

SplashActivityは、アプリを開いたときにスプラッシュスクリーンを表示する最初にロードされたものです。それが完了すると、Main.axml レイアウトを表示する DiallerActivity がロードさます-これは正常に動作します。

私のMain.axmlレイアウト内には、クリックすると ContactsActivity をロードするボタンがあり、これは Contacts.axmlロードする必要があります。これには、内部に 3 つのボタンとラベルがあるだけです。何も実行するようにプログラムされていません。

問題は、ボタンをクリックすると、表示が空白の画面に変わり、画面の上部に Android バーが表示されたままになることです。.axml ファイルのコンテンツが表示されないだけです。

アクティビティの実行時にContacts.axmlレイアウトを表示する必要があります。私の現在のコードは以下です。

DiallerActivity のコード

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

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.Main);

Button btnAcceptClick = FindViewById<Button> (Resource.Id.btnAccept);

btnAcceptClick.Click += delegate {
            StartActivity (typeof(VoWiFiApplicationFinal.ContactsActivity));
        };

ContactsActivity のコード

public class ContactsActivity : Activity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // setting the contacts.axml as the view
        SetContentView (Resource.Layout.Contacts);
    }
}

Contacts.axml が表示されない理由を知っている人はいますか? さらに情報を提供する必要がある場合は、それを伝えます..ちなみに、私は言語としてC#を使用しています。読んでくれてありがとう。

Contacts.xaml コード

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
    android:layout_width="fill_parent"
    android:id="@+id/toptest"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+/label1"
        android:text="testlabel" />
</LinearLayout>
<LinearLayout
    android:layout_width="fill_parent"
    android:id="@+id/testagain"
    android:layout_height="wrap_content"
    android:orientation="horizontal" />
<LinearLayout
    android:layout_width="fill_parent"
    android:id="@+id/menuBar"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
        android:layout_width="fill_parent"
        android:text="ACCEPT"
        android:id="@+id/btnAccep"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnDeclin"
        android:layout_weight="1"
        android:text="DECLINE" />
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btntes"
        android:layout_weight="1"
        android:text="TEST" />
</LinearLayout>
</LinearLayout>
4

1 に答える 1

0

Xamarin のどこかにバグがあるようです。また、.axml ファイルの名前を前後に変更し、values\strings.xml の文字列を試してみると、空白の画面 (アクション バーを除く) が表示され、.axml ファイルと同じ名前が付けられることもありました。文字列が関係しているかどうかは定かではありませんが、ある時点でコンパイル中に何らかのエラーが発生したことを覚えています。

とにかく、私にとっての解決策は

  1. .axml ファイルの内容をバックアップし、ファイルを完全に削除します。
  2. 元のファイルとは別の名前で新しい .axml ファイルを作成します。
  3. バックアップしたコンテンツを新しいファイルに貼り付けます。
  4. 新しいファイルの名前を古い名前に戻します。

その後、テストを実行したところ、すべてが再び機能しました。

于 2015-03-26T15:30:48.840 に答える