0

グラフィカルエディタの[他のレイアウトを含める]を使用して、アクティビティのメインレイアウトにいくつかの小さな相対レイアウトを追加しました。ただし、何らかの理由でエミュレータにアクティビティを読み込もうとすると失敗します。LogCatには、エラーが発生したときとまったく同じように見える一般的なもの以外の警告はありません。このアクティビティの.Javaファイルでは、これらの含まれているレイアウト内のビューを問題なく参照できました。

これは、レイアウトを含むアクティビティの.xmlファイルの要素です。

<include
    android:id="@+id/include1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/lblParklandAssistDesc"
    android:layout_below="@+id/lblParklandAssistDesc"
    layout="@layout/parklandweight" />

<include
    android:id="@+id/include2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/include1"
    android:layout_below="@+id/include1"
    layout="@layout/parklandbsa" />

そして、これらは含まれているレイアウトです

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<Button
    android:id="@+id/btnWeightUp"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/Up" />

<Button
    android:id="@+id/brnWeightDown"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/btnWeightUp"
    android:text="@string/Down" />

<TextView
    android:id="@+id/lblParklandWeightTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/btnWeightUp"
    android:text="@string/lblWeight"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/txtWeight"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/lblParklandWeightTitle"
    android:layout_toRightOf="@+id/btnWeightUp"
    android:ems="10"
    android:inputType="number"
    android:text="100" >

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/lblParklandWeightTitle" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/lb" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/kg" />
</RadioGroup>

</RelativeLayout>

次に、もう1つ。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<Button
    android:id="@+id/btnBSADown"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/btnBSAUp"
    android:layout_below="@+id/btnBSAUp"
    android:text="@string/Down" />

<TextView
    android:id="@+id/lblParklandBSAtitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="58dp"
    android:text="@string/lblParklandBSAtitle"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/btnBSAUp"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/Up" />

<EditText
    android:id="@+id/txtBSA"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/lblParklandBSAtitle"
    android:layout_below="@+id/lblParklandBSAtitle"
    android:ems="10"
    android:inputType="number"
    android:text="3" />

</RelativeLayout>

何が起こっているのか、率直に言ってどこを見ればいいのか、私には最も曖昧な考えがありません。私はほぼ2週間、AndroidでEclipseとJavaを使用して作業し、1つのアプリを作成し、すべてを使って幸運と簡単な学習を行ってきました。これは私を困惑させました。どんな助けでも大歓迎です!

新しい追加(xmlレイアウト自体は問題ではないように思われるため、.Javaコンテンツを追加しました):

アクティビティのクラスの先頭で、次のような他のレイアウトを処理する変数を宣言します。

View parklandWeight;
View parklandBSA;

次に、オブジェクトをオブジェクトに割り当てると、次のようになります。

parklandWeight = (View) findViewById(R.layout.parklandweight);
parklandBSA = (View) findViewById(R.layout.parklandbsa);

LogCatのこのactivity.javaに起因すると思われる唯一のエラーは、この2番目の割り当ての直後に発生します。これらのレイアウトの1つにあるボタンを参照する別の割り当て:

btnWeightUp = (Button) parklandWeight.findViewById(R.id.btnWeightUp);

これが私の問題の原因でしょうか?StackOverflowで少なくとも5つまたは6つの異なるスレッドを読んだことがあります。ここでは、これを行うことをお勧めします。前もって感謝します。

4

2 に答える 2

0

レイアウトの変数を間違って入力していました。使用する代わりに

View layoutVariable;

以下のように実際のレイアウトタイプで入力する必要がありました。

RelativeLayout parklandWeight;
RelativeLayout parklandBSA;

次に、実際のレイアウトオブジェクトを変数に割り当てるときは、もちろん、レイアウトタイプとして入力する必要があります。しかし、それ以上に、findViewByIdメソッドでは、R.id.layout_idを使用する必要があるときにR.layout.layout_idを使用していました。また、xmlファイルのincludeタグで使用されているのと同じ+idを参照する必要があるxmlファイル名も参照していました。これは私がそれをするべきだった方法です:

parklandWeight = (RelativeLayout) findViewById(R.id.include1);
parklandBSA = (RelativeLayout) findViewById(R.id.include2);

これが、同じ問題に遭遇したAndroid開発の初心者に役立つことを願っています。皆さんが素晴らしい一日を過ごせることを願っています!

于 2013-03-14T15:05:02.920 に答える
0

私はこれらのコードを完璧に実行しようとしました...これらを試してください。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="HardCodedText" >

<include
    android:id="@+id/include2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/include1"
    android:layout_alignParentTop="true"
    android:layout_below="@+id/include1"
    layout="@layout/top" />

<Button
    android:id="@+id/btnWeightUp"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/include2"
    android:text="Up" />

<Button
    android:id="@+id/brnWeightDown"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/btnWeightUp"
    android:text="Down" />

<TextView
    android:id="@+id/lblParklandWeightTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/include2"
    android:layout_toRightOf="@+id/btnWeightUp"
    android:text="lblWeight"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/txtWeight"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/lblParklandWeightTitle"
    android:layout_toRightOf="@+id/btnWeightUp"
    android:ems="10"
    android:inputType="number"
    android:text="100" >

    <requestFocus />
</EditText>

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/include2"
    android:layout_toRightOf="@+id/lblParklandWeightTitle" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="lb" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="kg" />
</RadioGroup>

</RelativeLayout>
于 2013-03-14T05:29:06.153 に答える