最近看了一些淘宝购物车的demo,于是也写了一个。
效果图如下:
主要代码如下:
actvity中的代码:
public class ShoppingCartActivity extends BaseActivity {
private List<Test> data;
private ListView mListView;
private ShoppingCartAdapter adapter;
private RelativeLayout rlRefresh;
private TextView tvRefresh;
private ProgressBar barRefresh;
private LinearLayout clear;
private CheckBox checkBox_select_all;
private CheckBox checkBox_add;
private TextView integral_sum;
private int sum = 0;
private int[] sumIntegral;
private Context context;
@Override
protected void onCreate(Bundle bundle) {
// TODO Auto-generated method stub
super.onCreate(bundle);
setContentView(R.layout.activity_shopping_cart);
initView();
}
private void initView() {
context = this;
showpage = 1;
isPermitFlag = true;
data = new ArrayList<Test>();
// 测试数据
data.add(new Test(\"id\", \"color\", \"type\", \"100\"));
data.add(new Test(\"id\", \"color\", \"type\", \"200\"));
data.add(new Test(\"id\", \"color\", \"type\", \"300\"));
data.add(new Test(\"id\", \"color\", \"type\", \"0\"));
data.add(new Test(\"id\", \"color\", \"type\", \"300\"));
data.add(new Test(\"id\", \"color\", \"type\", \"100\"));
data.add(new Test(\"id\", \"color\", \"type\", \"500\"));
data.add(new Test(\"id\", \"color\", \"type\", \"0\"));
data.add(new Test(\"id\", \"color\", \"type\", \"900\"));
adapter = new ShoppingCartAdapter(context, handler, data);
sumIntegral = new int[data.size() + 1];
checkBox_add = (CheckBox) findViewById(R.id.checkbox_add);
integral_sum = (TextView) findViewById(R.id.integral_sum);
clear = (LinearLayout) findViewById(R.id.clear);
clear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
data.clear();
adapter.notifyDataSetChanged();
integral_sum.setText(0 + \"\");
checkBox_select_all.setChecked(false);
checkBox_add.setClickable(false);
}
});
checkBox_select_all = (CheckBox) findViewById(R.id.checkbox_select);
checkBox_select_all.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
HashMap<Integer, Boolean> isSelected = ShoppingCartAdapter
.getIsSelected();
Iterator iterator = isSelected.entrySet().iterator();
List<Boolean> array = new ArrayList<Boolean>();//列表中checkbox选中状态
List<Integer> nums = new ArrayList<Integer>();//列表中商品数量
while (iterator.hasNext()) {
HashMap.Entry entry = (HashMap.Entry) iterator.next();
Integer key = (Integer) entry.getKey();
Boolean val = (Boolean) entry.getValue();
array.add(val);
}
for (int i = 0; i < data.size(); i++) {
int num = data.get(i).getNum();
int integral = Integer.valueOf(data.get(i).getIntegral());
nums.add(num);
}
if (checkBox_select_all.isChecked()) {
for (int i = 0; i < data.size(); i++) {
ShoppingCartAdapter.getIsSelected().put(i, true);
}
checkBox_add.setChecked(true);
adapter.notifyDataSetChanged();
} else {
for (int i = 0; i < data.size(); i++) {
ShoppingCartAdapter.getIsSelected().put(i, false);
}
checkBox_add.setChecked(false);
adapter.notifyDataSetChanged();
integral_sum.setText(0 + \"\");
}
}
});
mListView= (ListView) findViewById(R.id.finance_list);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(context, position + \"\", Toast.LENGTH_LONG)
.show();
int pos = position - 1;
ViewHolder viewHolder = (ViewHolder) view.getTag();
int num = data.get(pos).getNum();
if (num == 0) {
Toast.makeText(context, \"请选择商品数量\", Toast.LENGTH_LONG)
.show();
} else {
boolean cu = !ShoppingCartAdapter.getIsSelected().get(pos);
ShoppingCartAdapter.getIsSelected().put(pos, cu);
adapter.notifyDataSetChanged();
//遍历获取列表中checkbox的选中状态
HashMap<Integer, Boolean> isSelected = ShoppingCartAdapter
.getIsSelected();
Iterator iterator = isSelected.entrySet().iterator();
List<Boolean> array = new ArrayList<Boolean>();
while (iterator.hasNext()) {
HashMap.Entry entry = (HashMap.Entry) iterator.next();
Integer key = (Integer) entry.getKey();
Boolean val = (Boolean) entry.getValue();
array.add(val);
}
if (Test.isAllFalse(array)) {
checkBox_select_all.setChecked(false);
checkBox_add.setChecked(false);
}
if (Test.isAllTrue(array)) {
checkBox_select_all.setChecked(true);
checkBox_add.setChecked(true);
}
if (Test.isHaveOneFasle(array)) {
checkBox_select_all.setChecked(false);
}
if (Test.isHaveOneTrue(array)) {
checkBox_add.setChecked(true);
}
}
}
});
}
@SuppressLint(\"HandlerLeak\")
private Handler handler = new Handler(){
@SuppressWarnings(\"unchecked\")
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == 10){ //更改选中商品的总价格
float price = (Float)msg.obj;
if(price > 0){
integral_sum.setText(price+\"\");
}else{
integral_sum.setText(\"0\");
}
}
else if(msg.what == 11){
//列表选中状态
List<Boolean> array = (List<Boolean>) msg.obj;
if (Test.isAllFalse(array)) {
checkBox_select_all.setChecked(false);
checkBox_add.setChecked(false);
}
if (.isAllTrue(array)) {
checkBox_select_all.setChecked(true);
checkBox_add.setChecked(true);
}
if (Test.isHaveOneFasle(array)) {
checkBox_select_all.setChecked(false);
}
if (Test.isHaveOneTrue(array)) {
checkBox_add.setChecked(true);
}
}
}
};
actvity中XML的代码:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" xmlns:header=http://schemas.android.com/apk/res/com.sxc.test\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:background=\"@color/app_background\"
android:orientation=\"vertical\" >
<com.autoserve.core.widget.HeaderWidget
android:id=\"@+id/header\"
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:layout_alignParentTop=\"true\"
header:text=\"我的购物车\" />
<LinearLayout
android:id=\"@+id/layout1\"
android:layout_width=\"match_parent\"
android:layout_height=\"40dp\"
android:layout_below=\"@id/header\"
android:layout_gravity=\"center\"
android:layout_marginTop=\"20dp\"
android:background=\"@color/white\"
android:orientation=\"horizontal\" >
<LinearLayout
android:layout_width=\"0dp\"
android:layout_height=\"match_parent\"
android:layout_marginLeft=\"10dp\"
android:layout_weight=\"1\"
android:gravity=\"center_vertical\"
android:orientation=\"horizontal\" >
<CheckBox
android:id=\"@+id/checkbox_select\"
style=\"@style/CustomCheckboxTheme\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\" />
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_marginLeft=\"10dp\"
android:text=\"全选\"
android:textColor=\"@color/gry_666666\"
android:textSize=\"@dimen/small_size\" />
</LinearLayout>
<LinearLayout
android:id=\"@+id/clear\"
android:layout_width=\"wrap_content\"
android:layout_height=\"match_parent\"
android:layout_marginRight=\"20dp\"
android:gravity=\"center_vertical|right\"
android:orientation=\"horizontal\" >
<CheckBox
android:layout_width=\"12dp\"
android:layout_height=\"12dp\"
android:background=\"@drawable/clear\" />
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_marginLeft=\"5dp\"
android:text=\"清空购物车\"
android:textColor=\"#b61d1d\"
android:textSize=\"@dimen/small_size\" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:layout_below=\"@id/layout1\"
android:layout_marginBottom=\"50dp\"
android:orientation=\"vertical\" >
<View
android:layout_width=\"match_parent\"
android:layout_height=\"0.1dp\"
android:background=\"@color/divider_color\" />
<ListView
android:id=\"@+id/finance_list\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:clickable=\"false\"
android:divider=\"@color/lucency\" />
<include
layout=\"@layout/include_refresh\"
android:visibility=\"gone\" />
</LinearLayout>
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"50dp\"
android:layout_alignParentBottom=\"true\"
android:orientation=\"horizontal\" >
<LinearLayout
android:layout_width=\"0dp\"
android:layout_height=\"match_parent\"
android:layout_weight=\"2\"
android:background=\"@color/gry_999999\"
android:gravity=\"center_vertical\"
android:orientation=\"horizontal\" >
<LinearLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"match_parent\"
android:layout_marginLeft=\"5dp\"
android:layout_marginRight=\"5dp\"
android:gravity=\"center\"
android:orientation=\"horizontal\" >
<CheckBox
android:id=\"@+id/checkbox_add\"
style=\"@style/CustomCheckboxTheme2\"
android:layout_width=\"wrap_content\"
android:clickable=\"false\"
android:layout_height=\"wrap_content\" />
</LinearLayout>
<LinearLayout
android:layout_width=\"0dp\"
android:layout_height=\"match_parent\"
android:layout_weight=\"1\"
android:gravity=\"center\"
android:orientation=\"horizontal\" >
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"合计:\"
android:textColor=\"@color/white\"
android:textSize=\"@dimen/small_size\" />
<TextView
android:id=\"@+id/integral_sum\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_marginLeft=\"5dp\"
android:layout_marginRight=\"5dp\"
android:text=\"0\"
android:textColor=\"@color/theme_color\"
android:textSize=\"@dimen/small_size\" />
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"积分\"
android:textColor=\"@color/white\"
android:textSize=\"@dimen/small_size\" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width=\"0dp\"
android:layout_height=\"match_parent\"
android:layout_weight=\"1\"
android:background=\"@color/theme_color\"
android:gravity=\"center\"
android:text=\"结算\"
android:textColor=\"@color/white\"
android:textSize=\"@dimen/small_size\" />
</LinearLayout>
</RelativeLayout>
-XML中头部可以到网上找一个这里就不放上来了
.checkbox和button的样式可以根据个人喜好设置。
Adaper中的代码:
public class ShoppingCartAdapter extends BaseAdapter {
private Context context;
private List<Test> loans;
private LayoutInflater inflater;
private static HashMap<Integer, Boolean> isSelected;
private static HashMap<Integer, Integer> numbers;
private Handler handler;
int num;// 商品数量
static class ViewHolder { // 自定义控件集合
public CheckBox ck_select;
public ImageView pic_goods;
public TextView id_goods;
public TextView color_goods;
public TextView type_goods;
public TextView integral_goods;
public AddMinusWidget add_minus;
public LinearLayout layout;
public TextView number;
public Button minus;
public Button plus;
}
/**
* 实例化Adapter
*
* @param context
* @param data
*/
public ShoppingCartAdapter(Context context, Handler handler, List<Test> data) {
this.context = context;
this.inflater = LayoutInflater.from(context);
this.loans = data;
this.handler = handler;
isSelected = new HashMap<Integer, Boolean>();
numbers = new HashMap<Integer, Integer>();
initDate();
}
private void initDate() {
for (int i = 0; i < loans.size(); i++) {
getIsSelected().put(i, false);
getNumbers().put(i, 1);
}
}
@Override
public int getCount() {
return loans.size();
}
@Override
public Object getItem(int position) {
return loans.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// 自定义视图
ViewHolder itemView = null;
if (convertView == null) {
// 获取list_item布局文件的视图
itemView = new ViewHolder();
convertView = inflater.inflate(R.layout.list_shopping_cart_item,
null);
// 获取控件对象
itemView.ck_select = (CheckBox) convertView
.findViewById(R.id.ck_select);
itemView.pic_goods = (ImageView) convertView
.findViewById(R.id.pic_goods);
itemView.id_goods = (TextView) convertView
.findViewById(R.id.id_goods);
itemView.color_goods = (TextView) convertView
.findViewById(R.id.color_goods);
itemView.type_goods = (TextView) convertView
.findViewById(R.id.type_goods);
itemView.integral_goods = (TextView) convertView
.findViewById(R.id.integral_goods);
itemView.number = (TextView) convertView.findViewById(R.id.number);
itemView.minus = (Button) convertView.findViewById(R.id.minus);
itemView.plus = (Button) convertView.findViewById(R.id.plus);
convertView.setTag(itemView);
} else {
itemView = (ViewHolder) convertView.getTag();
}
init(itemView, position);
itemView.ck_select.setChecked(getIsSelected().get(position));
itemView.number.setText(getNumbers().get(position).toString());
if (getIsSelected().get(position)) {
itemView.ck_select.setChecked(true);
} else {
itemView.ck_select.setChecked(false);
}
String a = itemView.number.getText().toString();
loans.get(position).setNum(Integer.valueOf(a));
Test test = loans.get(position);
itemView.id_goods.setText((CharSequence) test.getId());
itemView.color_goods.setText((CharSequence) test.getColor());
itemView.type_goods.setText((CharSequence) test.getType());
itemView.integral_goods.setText((CharSequence) test.getIntegral());
itemView.pic_goods.setImageResource(R.drawable.shopping);
return convertView;
}
private void init(final ViewHolder itemView, final int position) {
itemView.ck_select
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
isSelected.put(position, true);
getIsSelected().put(position, isChecked);
itemView.ck_select.setChecked(getIsSelected().get(
position));
handler.sendMessage(handler.obtainMessage(10,
getTotalPrice()));
Iterator iterator = isSelected.entrySet().iterator();
List<Boolean> array = new ArrayList<Boolean>();
while (iterator.hasNext()) {
HashMap.Entry entry = (HashMap.Entry) iterator
.next();
Integer key = (Integer) entry.getKey();
Boolean val = (Boolean) entry.getValue();
array.add(val);
}
handler.sendMessage(handler.obtainMessage(11, array));
}
});
final String numString = itemView.number.getText().toString();
itemView.plus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (numString == null || numString.equals(\"\")) {
num = 1;
itemView.number.setText(\"1\");
} else {
if (++num < 1) // 先加,再判断
{
num--;
Toast.makeText(context, \"请输入一个大于0的数字\",
Toast.LENGTH_SHORT).show();
} else {
itemView.number.setText(String.valueOf(num));
loans.get(position).setNum(num);
numbers.put(position, num);
handler.sendMessage(handler.obtainMessage(10,
getTotalPrice()));
Log.i(\"test\", \"+:\" + num);
}
}
}
});
itemView.minus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (numString == null || numString.equals(\"\")) {
num = 1;
itemView.number.setText(\"1\");
} else {
if (--num < 1) // 先加,再判断
{
num++;
Log.i(\"test\", \"-:\" + num);
Toast.makeText(context, \"请输入一个大于0的数字\",
Toast.LENGTH_SHORT).show();
Log.i(\"test\", \"-:\" + num);
} else {
itemView.number.setText(String.valueOf(num));
Log.i(\"test\", \"-:\" + num);
loans.get(position).setNum(num);
numbers.put(position, num);
handler.sendMessage(handler.obtainMessage(10,
getTotalPrice()));
}
}
}
});
}
/**
* 计算选中商品的积分
*
* @return 返回需要付费的总积分
*/
private float getTotalPrice() {
Test bean = null;
float totalPrice = 0;
for (int i = 0; i < loans.size(); i++) {
bean = loans.get(i);
if (ShoppingCartAdapter.getIsSelected().get(i)) {
totalPrice += bean.getNum()
* Integer.valueOf(bean.getIntegral());
}
}
return totalPrice;
}
public static HashMap<Integer, Boolean> getIsSelected() {
return isSelected;
}
public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {
ShoppingCartAdapter.isSelected = isSelected;
}
public static HashMap<Integer, Integer> getNumbers() {
return numbers;
}
public static void setNumbers(HashMap<Integer, Integer> numbers) {
ShoppingCartAdapter.numbers = numbers;
}
}
Adapter中的XML代码:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:descendantFocusability=\"blocksDescendants\"
android:background=\"@color/white\"
android:orientation=\"vertical\" >
<View
android:layout_width=\"match_parent\"
android:layout_height=\"0.1dp\"
android:background=\"@color/divider_color\" />
<LinearLayout
android:id=\"@+id/layout5\"
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:gravity=\"center_vertical\"
android:orientation=\"horizontal\"
android:padding=\"5dp\" >
<CheckBox
android:id=\"@+id/ck_select\"
style=\"@style/CustomCheckboxTheme\"
android:layout_width=\"wrap_content\"
android:focusable=\"false\"
android:layout_height=\"wrap_content\"
android:layout_marginRight=\"5dp\" />
<ImageView
android:id=\"@+id/pic_goods\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:scaleType=\"fitCenter\"
android:src=\"@drawable/shopping\" />
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:layout_marginLeft=\"10dp\"
android:orientation=\"vertical\" >
<TextView
android:id=\"@+id/id_goods\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"短袜男士星期 POLO棉袜潮男秋冬款礼盒装\"
android:textColor=\"@color/gry_999999\"
android:textSize=\"@dimen/small_size\" />
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:orientation=\"horizontal\" >
<LinearLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:orientation=\"vertical\" >
<LinearLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:orientation=\"horizontal\" >
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"颜色:\"
android:textColor=\"@color/gry_999999\"
android:textSize=\"12sp\" />
<TextView
android:id=\"@+id/color_goods\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"黑色\"
android:textColor=\"@color/gry_999999\"
android:textSize=\"12sp\" />
</LinearLayout>
<LinearLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:orientation=\"horizontal\" >
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"规格:\"
android:textColor=\"@color/gry_999999\"
android:textSize=\"12sp\" />
<TextView
android:id=\"@+id/type_goods\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"普通\"
android:textColor=\"@color/gry_999999\"
android:textSize=\"12sp\" />
</LinearLayout>
<LinearLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:orientation=\"horizontal\" >
<TextView
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"所需积分\"
android:textColor=\"@color/theme_color\"
android:textSize=\"12sp\" />
<TextView
android:id=\"@+id/integral_goods\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"1000\"
android:layout_marginLeft=\"5dp\"
android:textColor=\"@color/theme_color\"
android:textSize=\"12sp\" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"25dp\"
android:layout_gravity=\"bottom\"
android:layout_marginBottom=\"5dp\"
android:layout_marginRight=\"5dp\"
android:gravity=\"right\"
android:orientation=\"horizontal\" >
<LinearLayout
android:layout_width=\"80dp\"
android:layout_height=\"25dp\"
android:layout_gravity=\"right\"
android:background=\"@color/white\"
android:orientation=\"horizontal\" >
<Button
android:id=\"@+id/minus\"
android:layout_width=\"25dp\"
android:layout_height=\"match_parent\"
android:background=\"@drawable/kuangzi1\"
android:gravity=\"center\"
android:focusable=\"false\"
android:text=\"-\"
android:textColor=\"@color/black\" >
</Button>
<TextView
android:id=\"@+id/number\"
android:layout_width=\"30dp\"
android:layout_height=\"match_parent\"
android:background=\"@drawable/kuangzi1\"
android:gravity=\"center\"
android:inputType=\"number\"
android:text=\"1\"
android:textColor=\"@color/black\" >
</TextView>
<Button
android:id=\"@+id/plus\"
android:layout_width=\"25dp\"
android:layout_height=\"match_parent\"
android:background=\"@drawable/kuangzi1\"
android:gravity=\"center\"
android:focusable=\"false\"
android:text=\"+\"
android:textColor=\"@color/black\" >
</Button>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View
android:layout_width=\"match_parent\"
android:layout_height=\"0.1dp\"
android:background=\"@color/divider_color\" />
</LinearLayout>
实体类:
package com.autoserve.net33.model;
public class Test {
@Override
public String toString() {
return \"test [id=\" + id + \", color=\" + color
+ \", type=\" + type + \", integral=\" + integral + \"]\";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getIntegral() {
return integral;
}
public void setIntegral(String integral) {
this.integral = integral;
}
private String id;
private String color;
private String type;
private String integral;
private int num;//商品数量
private int sumIntegral;
private boolean isChoosed; //商品是否在购物车中被选中
public Test(String id, String color, String type, String integral) {
super();
this.id = id;
this.color = color;
this.type = type;
this.integral = integral;
}
public Test() {
super();
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getSumIntegral() {
return sumIntegral;
}
public void setSumIntegral(int sumIntegral) {
this.sumIntegral = sumIntegral;
}
public boolean isChoosed() {
return isChoosed;
}
public void setChoosed(boolean isChoosed) {
this.isChoosed = isChoosed;
}
}
以上就是本文的全部内容,祝大家在新的一年里工作顺利,事事顺心,我们大家共同努力。
本文地址:https://www.stayed.cn/item/22030
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我