0.边写Linux笔记看完了2A课程,我承认这对于初学者来说是一部很棒的教学视频,并不是吹嘘自己多强。至少不该花整整两个小时专心致志看这期视频。嗯……废话不多说,代码说事儿。
1.功能:点咖啡并结算
2.控件需求:
UI | 数量 | 用处 | 备注 |
---|---|---|---|
TextView | 4 | 显示数量(QUANTITY)的text | 静态 |
显示当前数量 | 动态 | ||
显示当前总价(PRICE)的text | 静态 | ||
显示当前总价 | 动态 | ||
Button | 3 | 增加咖啡数量 | 增加咖啡 |
减少咖啡数量 | 减少咖啡 | ||
结算按钮 | 略显多余。可以用前两个按钮代替其功能。如果这个按钮作为提交订单,进行支付操作的话,还是需要的。 |
3.开始干活。上一期写过完整的新建AndroidStudio项目的过程,这次这里就省略过去)
3.0 贴士:尤其是从Eclipse转AndroidStudo的童鞋(以下是Eclipse和AS的各个名词的级别对应关系):
Eclipse | AndroidStudio |
---|---|
— | Workspace |
Workspace | Project |
Project | Module |
android:orientation="vertical"
属性。
<LinearLayout 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"
android:orientation="vertical"
tools:context="wang.relish.ordercoffee.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:text="quantity"
android:textAllCaps="true" />
<Button
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:onClick="increase"
android:text="+" />
<TextView
android:id="@+id/tvQuantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:text="0" />
<Button
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:onClick="decrease"
android:text="-" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:text="Price"
android:textAllCaps="true" />
<TextView
android:id="@+id/tvPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:text="$0" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:onClick="submitOrder"
android:text="Order" />
LinearLayout>
3.3.5 完善MainActivity.java文件。(添加3个OnClick方法,实例化2个TextView)
package wang.relish.ordercoffee;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView tvQuantity;
TextView tvPrice;
int unitPrice = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvQuantity = (TextView) findViewById(R.id.tvQuantity);
tvPrice = (TextView) findViewById(R.id.tvPrice);
}
public void increase(View v) {
String currentQuantityStr = tvQuantity.getText().toString();
if (!currentQuantityStr.matches("[0-9]+")) {
Toast.makeText(this, "数字格式错误", Toast.LENGTH_SHORT).show();
return;
}
int currentQuantity = Integer.parseInt(currentQuantityStr);
tvQuantity.setText(String.valueOf(currentQuantity + 1));
}
public void decrease(View v) {
String currentQuantityStr = tvQuantity.getText().toString();
if (!currentQuantityStr.matches("[0-9]+")) {
Toast.makeText(this, "数字格式错误", Toast.LENGTH_SHORT).show();
return;
}
int currentQuantity = Integer.parseInt(currentQuantityStr);
if (currentQuantity == 0) {
return;
}
tvQuantity.setText(String.valueOf("$" + (currentQuantity - 1)));
}
public void submitOrder(View v) {
int currentQuantity = Integer.parseInt(tvQuantity.getText().toString());
int price = currentQuantity * unitPrice;
tvPrice.setText(String.valueOf(price));
Toast.makeText(this, "收银:$" + price, Toast.LENGTH_SHORT).show();
}
}