您的位置:首页 > 产品设计 > UI/UE

UI基础控件综合案例之Java代码编写

2017-06-11 23:06 519 查看
UI基础控件综合案例之案例介绍及案例分析

UI基础控件综合案例之XML布局编写

Java
public class Person {
private String name;
private String sex;
Food food;

public Person() {

}

public Person(String name, String sex, Food food) {
super();
this.name = name;
this.sex = sex;
this.food = food;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public Food getFood() {
return food;
}

public void setFood(Food food) {
this.food = food;
}

@Override
public String toString() {
return "姓名:" + name + ", 性别:" + sex +  food ;
}

}


Java
public class Food {
private String name;
private boolean hot;
private boolean fish;
private boolean sour;
private int price;
private int pic;

public Food(String name, int price, int pic, boolean hot, boolean fish,
boolean sour) {
super();
this.name = name;
this.hot = hot;
this.fish = fish;
this.sour = sour;
this.price = price;
this.pic = pic;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isHot() {
return hot;
}

public void setHot(boolean hot) {
this.hot = hot;
}

public boolean isFish() {
return fish;
}

public void setFish(boolean fish) {
this.fish = fish;
}

public boolean isSour() {
return sour;
}

public void setSour(boolean sour) {
this.sour = sour;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public int getPic() {
return pic;
}

public void setPic(int pic) {
this.pic = pic;
}

@Override
public String toString() {
return ",菜名:" + name + ", 辣:" + hot + ", 海鲜:" + fish + ", 酸:" + sour
+ ", 价格:" + price;
}

}


Java
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton;

/*
* 步骤
* 1、初始化控件
* 2、初始化数据
* 3、为控件添加监听器
*/
public class MainActivity extends Activity {
private EditText name;
private RadioGroup sex;
private CheckBox hot, fish, sour;
private SeekBar seekBar;
private Button find;
private ToggleButton toggleButton;
private List<Food> lists_food;
private List<Food> lists_get;
private Person person;
private RadioGroupListener radioGroupListener;
private boolean isFish;
private boolean isHot;
private boolean isSour;
private CheckBoxListener checkBoxListener;
private int price = 30;
private SeekBarListener seekBarListener;
private ButtonListener buttonListener;
private int count = 0;
private ImageView iv_pic;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food);
// 初始化控件
initView();
// 初始化数据
initData();
// 为控件添加监听器
setListener();
}

private void initView() {
name = (EditText) findViewById(R.id.et_name);
sex = (RadioGroup) findViewById(R.id.rg_sex);
hot = (CheckBox) findViewById(R.id.cb_hot);
fish = (CheckBox) findViewById(R.id.cb_fish);
sour = (CheckBox) findViewById(R.id.cb_sour);
seekBar = (SeekBar) findViewById(R.id.sb_price);
seekBar.setProgress(30);
find = (Button) findViewById(R.id.btn_find);
toggleButton = (ToggleButton) findViewById(R.id.tb_click);
iv_pic = (ImageView) findViewById(R.id.iv_pic);
}

private void initData() {
person = new Person();
lists_food = new ArrayList<Food>();
lists_get = new ArrayList<Food>();
lists_food.add(new Food("麻辣香锅", 55, R.drawable.malaxiangguo, true,
false, false));
lists_food.add(new Food("上汤娃娃菜", 28, R.drawable.wawacai, false, false,
false));
lists_food.add(new Food("水煮鱼", 48, R.drawable.shuizhuyu, true, true,
false));
lists_food.add(new Food("清蒸鲈鱼", 68, R.drawable.qingzhengluyu, false,
true, false));
lists_food.add(new Food("麻辣火锅", 80, R.drawable.malahuoguo, true, true,
false));
lists_food.add(new Food("桂林米粉", 15, R.drawable.guilin, false, false,
false));
lists_food.add(new Food("红烧肉", 60, R.drawable.hongshaorou, false,
false, false));
lists_food.add(new Food("木须肉", 40, R.drawable.muxurou, false, false,
false));
lists_food.add(new Food("西芹炒百合", 38, R.drawable.xiqin, false, false,
false));
lists_food.add(new Food("酸菜牛肉面", 35, R.drawable.suncainiuroumian,
false, false, true));
lists_food.add(new Food("酸菜汤", 40, R.drawable.suanlatang, true, false,
true));

}

private void setListener() {
radioGroupListener = new RadioGroupListener();
sex.setOnCheckedChangeListener(radioGroupListener);
checkBoxListener = new CheckBoxListener();
fish.setOnCheckedChangeListener(checkBoxListener);
hot.setOnCheckedChangeListener(checkBoxListener);
sour.setOnCheckedChangeListener(checkBoxListener);
seekBarListener = new SeekBarListener();
seekBar.setOnSeekBarChangeListener(seekBarListener);
buttonListener = new ButtonListener();
find.setOnClickListener(buttonListener);
toggleButton.setOnClickListener(buttonListener);
}

class RadioGroupListener implements OnCheckedChangeListener {

@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// 当用户选择当前RadioGroup组的Button时被触发
switch (arg1) {
case R.id.rb_man:
person.setSex("男");
break;
case R.id.rb_woman:
person.setSex("女");
break;

}
System.out.println("性别:" + person.getSex());
}

}

class CheckBoxListener implements
android.widget.CompoundButton.OnCheckedChangeListener {

@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// 当控件状态改变时被触发
CheckBox cbBox = (CheckBox) arg0;
switch (cbBox.getId()) {
case R.id.cb_fish:
if (arg1) {
isFish = true;
} else {
isFish = false;
}
break;
case R.id.cb_hot:
if (arg1) {
isHot = true;
} else {
isHot = false;
}
break;
case R.id.cb_sour:
if (arg1) {
isSour = true;
} else {
isSour = false;
}
break;
}
System.out.println("当前喜好:" + "辣" + isHot + "海鲜:" + isFish + "酸:"
+ isSour);
}

}

class SeekBarListener implements OnSeekBarChangeListener {

@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
price = arg0.getProgress();
Toast.makeText(MainActivity.this, "价格:" + price, 100).show();

}

@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
}

@Override
public void onStartTrackingTouch(SeekBar arg0) {
}

}

class ButtonListener implements OnClickListener {

@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btn_find:
// 清空lists_get,count设置为0
lists_get.clear();
count = 0;
// 当用户点击寻找时,需要筛查信息,并把结果显示在imageView上
checkData();
if (!lists_get.isEmpty()) { // 如果lists_get不空就显示第一条数据图片
showPic(0);
} else {
Toast.makeText(MainActivity.this, "未找到相关菜品",
Toast.LENGTH_SHORT).show();
iv_pic.setImageResource(R.drawable.ic_launcher);
}
//toggleButton.setChecked(true);
break;

case R.id.tb_click:
if (toggleButton.isChecked()) { // 如果是选中状态为下一页功能
if (count < lists_get.size() - 1) { // 如果count没有到末尾就自增并显示下一张图片
count++;
showPic(count);
} else { // count到末尾后重置count并显示提示信息。
count = 0;
showPic(count);
Toast.makeText(MainActivity.this, "因为已到末尾,所以从头显示",
Toast.LENGTH_SHORT).show();
}
} else {// 未选中的话将菜品信息和用户名封装到person对象中,显示内容
person.setName(name.getText().toString());
person.setFood((Food) (lists_get.get(count)));
Toast.makeText(MainActivity.this, person.toString(),
Toast.LENGTH_SHORT).show();
}
break;
}

}

}

private void checkData() {
// 找出菜品
for (int i = 0; i < lists_food.size(); i++) {
Food food = lists_food.get(i);
if ((food.getPrice() <= price) && (food.isFish() == isFish)
&& (food.isHot() == isHot) && (food.isSour() == isSour)) {
lists_get.add(food);
}
}
System.out.println("******************" + lists_get.size());
}

// 显示图片的方法
private void showPic(int count) {
// count值为要显示lists_get列表中第几个菜品的图片
// count值从0开始,表示显示lists_get列表中第一次菜品的图片
iv_pic.setImageResource(lists_get.get(count).getPic());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: