35401


android studioで電卓を作っているのですがレイアウト段階でエラーが発生してしまいます。  
私が思うにRelative Layoutらへんだと思うのですがどういじれば治るのかわかりません。  
ちなみにこのプログラムは本に書いてあることとほぼ同じプログラムです。

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.android.sample.dentaku.MainActivity">
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
    
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="top|center_horizontal"
                android:layout_marginTop="35dp"
                android:paddingBottom="@dimen/activity_vertical_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin">
    
    
    
    
             <EditText
                android:id="@+id/NumberInput1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:ems="10"
                android:hint="数字を入力"
                android:inputType="number"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             <Button
                android:id="@+id/calcButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/NumberInput1"
                android:layout_toEndOf="@+id/NumberInput1"
                android:text="計算"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             <Spinner
                android:id="@+id/operationSelecter"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/NumberInput1"
                android:layout_below="@+id/calcButton1"
                android:layout_toStartOf="@+id/calcButton1"
                android:addStatesFromChildren="true"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="8dp" />
    
             <EditText
                android:id="@+id/NumberInput2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/NumberInput1"
                android:layout_alignStart="@+id/NumberInput1"
                android:layout_below="@+id/operationSelecter"
                android:hint="数字を入力"
                android:inputType="number"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             <Button
                android:id="@+id/calcButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/NumberInput2"
                android:layout_toEndOf="@+id/NumberInput2"
                android:text="計算"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             <TextView
                android:id="@+id/calcResult"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/NumberInput2"
                android:layout_below="@+id/NumberInput2"
                android:text="=計算結果"
                android:textColor="#000000"
                android:textSize="18sp"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             <Button
                android:id="@+id/nextButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/calcButton2"
                android:layout_below="@+id/calcResult"
                android:text="続けて計算する"
                tools:layout_editor_absoluteY="89dp"
                tools:layout_editor_absoluteX="0dp" />
    
             </RelativeLayout>
        </ScrollView>
    </FrameLayout>
    
[/code]

[![RelativeLayoutの部分](https://i.stack.imgur.com/3MFib.png)](https://i.stack.imgur.com/3MFib.png)


CC BY-SA 4.0
2017-06-07T00:26:56.293
35351
2021-03-07T04:58:44.333
2021-03-07T04:58:44.333
3060
23605
question
java android android-studio xml
Android アプリ作成時、レイアウト段階でエラーが発生してしまう


エラーの内容がわからないので推測ですが、dimen.xmlファイルが用意されていないのではないでしょうか？

[code]

    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    
[/code]

これらは`dimen`属性リソースの`activity_****_margin`を指定するという記載です。  
指定したリソースを定義していないので、参照するリソースが不明というエラーが発生しているのだと思います。  
参考にされている書籍には、その辺りの記述があるのだと思います。

推測があっていればdimen.xmlファイルを作成し、以下のようなパラメータを追加すればエラーは解消されるはずです。

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="activity_vertical_margin">0dp</dimen>
        <dimen name="activity_horizontal_margin">0dp</dimen>
    </resources>
    
[/code]


CC BY-SA 3.0
2017-06-07T01:29:53.540
35354
2017-06-07T01:29:53.540
20272
35351
answer

[code]

    Cannot resolve symbol '@dimen/activity_vertical_margin'
    
[/code]

これは参照先がないことによるエラーですが  
android studioのバージョンが本を買った時点より新しく、プロジェクト作成時のテンプレートが異なっている事によるエラーだと思います

%ProjectRoot%\app\src\main\res\valuesの下に  
ファイルdimens.xmlを作り

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="activity_horizontal_margin">16dp</dimen>
        <dimen name="activity_vertical_margin">16dp</dimen>
    </resources>
    
[/code]

%ProjectRoot%\app\src\main\resの下に  
フォルダvalues-w820dpを、  
さらにその下にファイルdimens.xmlを作り

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-- Example customization of dimensions originally defined in res/values/dimens.xml
             (such as screen margins) for screens with more than 820dp of available width. This
             would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
        <dimen name="activity_horizontal_margin">64dp</dimen>
    </resources>
    
[/code]

と書く事で解決できると思います


CC BY-SA 3.0
2017-06-08T11:05:57.420
35401
2017-06-08T11:05:57.420
9463
35351
answer