我正在尝试使用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>
答案 0 :(得分:0)
好的,除了 hardcode 之外,我没有在您的代码中发现任何奇怪的东西,例如将字符串放入组件或命名您的ID。
这是我的代码,效果很好,您可以根据需要对其进行修改。
看起来像这样:
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
的更多信息祝你好运。