准备材料:
UI设计:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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/colorAccent" tools:context="com.example.dpl.dinnerdecider1.MainActivity"> <TextView android:id="@+id/selectedFood" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:fontFamily="@font/muli_bold" android:text="Chinese" android:textSize="30sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.501" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/imageView" app:layout_constraintVertical_bias="0.014" /> <ImageView android:id="@+id/imageView" android:layout_width="120dp" android:layout_height="120dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="50dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/dd_logo" /> <Button android:id="@+id/decideBtn" android:layout_width="0dp" android:layout_height="48dp" android:background="@color/colorPrimary" android:fontFamily="@font/muli_bold" android:text="decider!" android:textColor="@android:color/background_light" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" /> <EditText android:id="@+id/addFoodTxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="24dp" android:ems="10" android:fontFamily="@font/muli_bold" android:inputType="textPersonName" android:hint="add new food....." app:layout_constraintBottom_toTopOf="@+id/addFoodBtn" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" /> <Button android:id="@+id/addFoodBtn" style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="233dp" android:layout_height="wrap_content" android:layout_marginBottom="80dp" android:background="@color/colorPrimary" android:fontFamily="@font/muli_bold" android:text="ADD FOOD" android:textColor="@android:color/background_light" app:layout_constraintBottom_toTopOf="@+id/decideBtn" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout>font及value中颜色设置:
font文件夹下muli_bold.xml文件:
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto" app:fontProviderAuthority="com.google.android.gms.fonts" app:fontProviderPackage="com.google.android.gms" app:fontProviderQuery="name=Muli&weight=700" app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"> </font-family>value文件夹下color.xml文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#5e7a8c</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#CCD7DC</color> </resources>Kotlin逻辑层MainActivity.kt文件:
package com.example.dpl.dinnerdecider1 import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* import java.util.* class MainActivity : AppCompatActivity() { val foodList= arrayListOf("土豆丝","鱼香肉丝","风味茄子","糖醋里脊","炖羊肉") //定义数组集合 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) decideBtn.setOnClickListener { //获取id对其进行监听 val random= Random() val randomFood=random.nextInt(foodList.count()) //该方法的作用是生成一个随机的int值,该值介于[0,count)的区间,也就是0到count之间的随机int值,包含0而不包含count。 selectedFood.text=foodList[randomFood] //根据值来获取对应的内容 } addFoodBtn.setOnClickListener(){ val newFood=addFoodTxt.text.toString() //获取输入的内容 foodList.add(newFood) //数组集合中添加内容 Toast.makeText(applicationContext,"添加成功!",Toast.LENGTH_SHORT).show() addFoodTxt.text.clear() //内容清除 } } }运行效果:
程序源码:https://github.com/dpl12/DinnerDecider