close

FruitAdapter01Spinner01Activity

 

Main Activity.java

 

package com.CodersCafe.www;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {
private RadioGroup sizerg;
private RadioGroup icerg;
private RadioGroup sugarrg;
private RadioButton[] sizerb = new RadioButton[3];
private RadioButton[] icerb = new RadioButton[5];
private RadioButton[] sugarrb = new RadioButton[5];
private Button[] cafebtns = new Button[8];
private TextView tv_order;
private TextView tv_money;
private int radioButtonCheckedColor = Color.RED;
private int radioButtonUnCheckedColor = Color.BLACK;

// 目前選擇大小杯
private int sizeIndex = 2;
// 目前選擇的冰度
private int iceIndex = 4;
// 目前選擇的糖
private int sugarIndex = 4;
private Order order;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
processView();
processControl();
}

private void processView() {
sizerg = (RadioGroup) findViewById(R.id.sizerg);
icerg = (RadioGroup) findViewById(R.id.icerg);
sugarrg = (RadioGroup) findViewById(R.id.sugarrg);
sizerb[0] = (RadioButton) findViewById(R.id.sizerb1);
sizerb[1] = (RadioButton) findViewById(R.id.sizerb2);
sizerb[2] = (RadioButton) findViewById(R.id.sizerb3);
icerb[0] = (RadioButton) findViewById(R.id.icerb1);
icerb[1] = (RadioButton) findViewById(R.id.icerb2);
icerb[2] = (RadioButton) findViewById(R.id.icerb3);
icerb[3] = (RadioButton) findViewById(R.id.icerb4);
icerb[4] = (RadioButton) findViewById(R.id.icerb5);
sugarrb[0] = (RadioButton) findViewById(R.id.sugarrb1);
sugarrb[1] = (RadioButton) findViewById(R.id.sugarrb2);
sugarrb[2] = (RadioButton) findViewById(R.id.sugarrb3);
sugarrb[3] = (RadioButton) findViewById(R.id.sugarrb4);
sugarrb[4] = (RadioButton) findViewById(R.id.sugarrb5);
cafebtns[0] = (Button) findViewById(R.id.cafebtn1);
cafebtns[0].setTag(0);// 掛名牌
cafebtns[1] = (Button) findViewById(R.id.cafebtn2);
cafebtns[1].setTag(1);
cafebtns[2] = (Button) findViewById(R.id.cafebtn3);
cafebtns[2].setTag(2);
cafebtns[3] = (Button) findViewById(R.id.cafebtn4);
cafebtns[3].setTag(3);
cafebtns[4] = (Button) findViewById(R.id.cafebtn5);
cafebtns[4].setTag(4);
cafebtns[5] = (Button) findViewById(R.id.cafebtn6);
cafebtns[5].setTag(5);
cafebtns[6] = (Button) findViewById(R.id.cafebtn7);
cafebtns[6].setTag(6);
cafebtns[7] = (Button) findViewById(R.id.cafebtn8);
cafebtns[7].setTag(7);
tv_order = (TextView) findViewById(R.id.tv_order);
tv_money = (TextView) findViewById(R.id.tv_money);
}

private void processControl() {
order = new Order();
// 設定RadioGroup改選的監聽
MyOnCheckedChangeListener myOnCheckedChangeListener = new MyOnCheckedChangeListener();
sizerg.setOnCheckedChangeListener(myOnCheckedChangeListener);
sugarrg.setOnCheckedChangeListener(myOnCheckedChangeListener);
icerg.setOnCheckedChangeListener(myOnCheckedChangeListener);
// 刷新RadioButton文字
updateRadioButtons(sizerg);
updateRadioButtons(sugarrg);
updateRadioButtons(icerg);
// 刷新CafeButton文字內容
refreshCafeButton();
// 設定CafeButton點選的監聽
MyOnClickListener myOnClickListener = new MyOnClickListener();
//
MyOnLongClickListener myOnLongClickListener=new MyOnLongClickListener();
for (Button cafebtn : cafebtns) {
cafebtn.setOnClickListener(myOnClickListener);
cafebtn.setOnLongClickListener(myOnLongClickListener);
}
}
// RadioGroup 改選的受委任者
class MyOnCheckedChangeListener implements OnCheckedChangeListener {

@Override
public void onCheckedChanged(RadioGroup parent, int id) {
updateRadioButtons(parent);

}

}

// CafeButton 點選的受委任者
class MyOnClickListener implements OnClickListener {

@Override
public void onClick(View view) {
order.add(new Cafe(sizeIndex, iceIndex, sugarIndex,
(Integer) view.getTag(), Cafe.cafePrice[(Integer) view
.getTag()][sizeIndex]));
tv_order.setText(order.toString());
tv_money.setText(String.valueOf(order.getSubtotal()));
}

}

// CafeButton 點長按的受委任者
class MyOnLongClickListener implements OnLongClickListener {
@Override
public boolean onLongClick(View view) {
order.add(new Cafe(sizeIndex, iceIndex, sugarIndex,
(Integer) view.getTag(), Cafe.cafePrice[(Integer) view
.getTag()][sizeIndex]));
tv_order.setText(order.toString());
tv_money.setText(String.valueOf(order.getSubtotal()));
return true;

}
}


private void updateRadioButtons(RadioGroup parent) {
// 取得RadioGroup內RadioButton數量
int radioButtonNumber = parent.getChildCount();
for (int i = 0; i < radioButtonNumber; i++) {
// 輪詢RadioGroup內RadioButton
RadioButton radioButton = (RadioButton) parent.getChildAt(i);
if (radioButton.isChecked()) {
// 若RadioButton被選取時文字顏色變更
radioButton.setTextColor(radioButtonCheckedColor);
// 是否為尺寸的RadioGroup
if (sizerg.equals(parent)) {
for (int j = 0; j < sizerb.length; j++) {
if (sizerb[j].equals(radioButton)) {
sizeIndex = j;

}

}
}
// 是否為糖的RadioGroup
if (sugarrg.equals(parent)) {
for (int j = 0; j < sugarrb.length; j++) {
if (sugarrb[j].equals(radioButton)) {
sugarIndex = j;
}
}
}

// 是否為冰的RadioGroup
if (icerg.equals(parent)) {
for (int j = 0; j < icerb.length; j++) {
if (icerb[j].equals(radioButton)) {
iceIndex = j;
}
}
refreshCafeButton();
} else {

// 若RadioButton沒被選取時文字顏色變更
radioButton.setTextColor(radioButtonUnCheckedColor);
}
}
}
}

// 刷新CafeButton文字內容
private void refreshCafeButton() {
for (int i = 0; i < cafebtns.length; i++) {
cafebtns[i].setText(Cafe.cafeName[i] + "("
+ Cafe.cafePrice[i][sizeIndex] + ")");
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鈴木保齡球 的頭像
    鈴木保齡球

    Java程式學習手札

    鈴木保齡球 發表在 痞客邦 留言(0) 人氣()