运行我的应用程序布局时没有出现

时间:2018-09-30 15:21:47

标签: android android-layout android-studio kotlin calculator

我正在尝试使用kotlin制作我的第一个计算器应用程序,但是当我运行我的应用程序时,它只会给我一个白屏。我尝试在虚拟设备和手机上运行它(小米Redmi注意事项4),但结果仍然相同。 提前致谢。

This is a screenshot of what my app looks like when i run it

This what my app looks like in the design view

这是我的代码:

    package com.hussein.startup

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import  kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun buNumberEvent(view: View) {
        val entryData= etShowNumber.text
        val buSelect = view as Button
        var buClickValue: String = "0"
        when (buSelect.id) {
            bu0.id -> {
                buClickValue += "0"
            }

            buDot.id -> {
                //TODO:prevent adding more than one dot
                buClickValue += "."
            }
            bu1.id -> {
                buClickValue += "1"
            }
            bu2.id -> {
                buClickValue += "2"
            }
            bu3.id -> {
                buClickValue += "3"
            }
            bu4.id -> {
                buClickValue += "4"
            }
            bu5.id -> {
                buClickValue += "5"
            }
            bu6.id -> {
                buClickValue += "6"
            }
            bu7.id -> {
                buClickValue += "7"
            }
            bu8.id -> {
                buClickValue += "8"
            }
            bu9.id -> {
                buClickValue += "9"
            }
            buPlusMinus.id -> {
                buClickValue ="-"+buClickValue
            }

        }
        etShowNumber.setText(buClickValue)
    }
}

这是我的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/gray"
    android:orientation="vertical"
    tools:context="com.hussein.startup.MainActivity">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:gravity="right"
        android:inputType="textPersonName"
        android:paddingTop="125dp"
        android:text="0"
        android:textColor="@color/white"
        android:textSize="40sp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/button24"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:text="AC"
                android:textSize="18sp" />

            <Button
                android:id="@+id/buPlusMinus"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="+/-"
                android:textSize="18sp" />

            <Button
                android:id="@+id/button22"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:text="%"
                android:textSize="18sp" />

            <Button
                android:id="@+id/button21"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:background="@color/buop"
                android:text="/"
                android:textColor="@color/white"
                android:textSize="18sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/bu7"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="7"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu8"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="8"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu9"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="9"
                android:textSize="18sp" />

            <Button
                android:id="@+id/button7"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:background="@color/buop"
                android:text="x"
                android:textColor="@color/white"
                android:textSize="18sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/bu4"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="4"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu5"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="5"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu6"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="6"
                android:textSize="18sp" />

            <Button
                android:id="@+id/button13"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:background="@color/buop"
                android:text="-"
                android:textColor="@color/white"
                android:textSize="18sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/bu1"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="1"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu2"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="2"
                android:textSize="18sp" />

            <Button
                android:id="@+id/bu3"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:onClick="buNumberEvent"
                android:text="3"
                android:textSize="18sp" />

            <Button
                android:id="@+id/button17"
                android:layout_width="30pt"
                android:layout_height="30pt"
                android:layout_weight="1"
                android:background="@color/buop"
                android:text="+"
                android:textColor="@color/white"
                android:textSize="18sp" />
        </TableRow>

    </TableLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bu0"
            android:layout_width="60pt"
            android:layout_height="30pt"
            android:layout_weight="1"
            android:onClick="buNumberEvent"
            android:text="0"
            android:textSize="18sp" />

        <Button
            android:id="@+id/buDot"
            android:layout_width="30pt"
            android:layout_height="30pt"
            android:layout_weight="2"
            android:onClick="buNumberEvent"
            android:text="."
            android:textSize="18sp" />

        <Button
            android:id="@+id/button4"
            android:layout_width="30pt"
            android:layout_height="30pt"
            android:layout_weight="1"
            android:background="@color/buop"
            android:text="="
            android:textColor="@color/white"
            android:textSize="18sp" />
    </LinearLayout>
</LinearLayout>

这是Mainfest文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hussein.startup">

    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true" android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这是样式文件:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

1 个答案:

答案 0 :(得分:0)

好的,除了 hardcode 之外,我没有在您的代码中发现任何奇怪的东西,例如将字符串放入组件或命名您的ID。

这是我的代码,效果很好,您可以根据需要对其进行修改。

看起来像这样:

enter image description here

XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.48" >

        <TextView
            android:id="@+id/textResult"
            android:layout_margin="@dimen/text_view_margin_16"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:freezesText="true"
            android:textSize="25sp"
            android:text="@string/textResult" />
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/buttonE"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonE"
            />

        <Button
            android:id="@+id/buttonF"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonF"
            />

        <ImageButton
            android:id="@+id/buttonBack"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonBack"
            android:src="@drawable/ic_action_back"
            android:contentDescription="@string/buttonBack"
            android:longClickable="true" />

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/buttonA"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonA" />

        <Button
            android:id="@+id/buttonB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonB" />

        <Button
            android:id="@+id/buttonC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonC" />

        <Button
            android:id="@+id/buttonD"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonD" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button7" />

        <Button
            android:id="@+id/button8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button8" />

        <Button
            android:id="@+id/button9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button9" />

        <Button
            android:id="@+id/buttonDecimal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonDecimal"
            android:textColor="@color/button_text_blue" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button4" />

        <Button
            android:id="@+id/button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button5" />

        <Button
            android:id="@+id/button6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button6" />

        <Button
            android:id="@+id/buttonBinary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonBinary"
            android:textColor="@color/button_text_blue" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button2" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button3" />

        <Button
            android:id="@+id/buttonOctal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonOctal"
            android:textColor="@color/button_text_blue" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/buttonReset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonReset"
            android:textColor="@color/button_text_red" />

        <Button
            android:id="@+id/button0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button0" />

        <Button
            android:id="@+id/buttonHexadecimal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/buttonHexadecimal"
            android:textColor="@color/button_text_blue" />

    </LinearLayout>

</LinearLayout>

颜色:

<color name="button_text_blue">#0000FF</color>
<color name="button_text_red">#FF0000</color>

维度:

<dimen name="text_view_margin_16">16dp</dimen>

ic_action_back.xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="24dp"
    android:width="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">

    <path android:fillColor="#000"
          android:pathData="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" />

String.xml:

<string name="textResult">0</string>

<string name="buttonE">E</string>
<string name="buttonF">F</string>
<string name="buttonBack">Back</string>

<string name="buttonA">A</string>
<string name="buttonB">B</string>
<string name="buttonC">C</string>
<string name="buttonD">D</string>

<string name="button7">7</string>
<string name="button8">8</string>
<string name="button9">9</string>
<string name="buttonDecimal">Decimal</string>

<string name="button4">4</string>
<string name="button5">5</string>
<string name="button6">6</string>
<string name="buttonBinary">Binary</string>

<string name="button1">1</string>
<string name="button2">2</string>
<string name="button3">3</string>
<string name="buttonOctal">Octal</string>

<string name="buttonReset">C</string>
<string name="button0">0</string>
<string name="buttonHexadecimal">Hexadecimal</string>

此外,我建议您使用 android.support.constraint.ConstraintLayout

您可以了解有关here

的更多信息

祝你好运。