效果图如下:
源码如下:
MainActivity.java:
package com.google.activity; import com.google.R; import com.google.adapter.MainAdapter; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView; public class MainActivity extends Activity implements OnClickListener{ private ListView listView; private Button btnSelectAll, btnUnSelectAll; private MainAdapter adapter; @Override public void onCreate(Bundle b){ super.onCreate(b); setContentView(R.layout.main); init(); initAdapter(); addAdapter(); addListener(); } private void init(){ listView = (ListView)this.findViewById(R.id.listview_main); btnSelectAll = (Button)this.findViewById(R.id.button_main_selectall); btnUnSelectAll = (Button)this.findViewById(R.id.button_main_unselectall); } private void initAdapter(){ adapter = new MainAdapter(this); } private void addAdapter(){ listView.setAdapter(adapter); } private void addListener(){ btnSelectAll.setOnClickListener(this); btnUnSelectAll.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.button_main_selectall: adapter.setListCheckStatus(true); adapter.notifyDataSetChanged(); break; case R.id.button_main_unselectall: adapter.setListCheckStatus(false); adapter.notifyDataSetChanged(); break; } } }
MainAdapter.java:
package com.google.adapter; import java.util.ArrayList; import java.util.List; import com.google.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; import android.widget.TextView; public class MainAdapter extends BaseAdapter { public Context context; private LayoutInflater layoutInflater; private int listSize = 21; private List<Boolean> listCheckStatus; public MainAdapter(Context context){ this.context = context; layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); listCheckStatus = new ArrayList<Boolean>(listSize); for(int i=0;i<listSize;i++){ listCheckStatus.add(false); } } static class ViewHolder{ private ImageView img; private TextView title; private CheckBox cb; } public List<Boolean> getListCheckStatus(){ return listCheckStatus; } public void setListCheckStatus(Boolean boo){ for(int i=0;i<listSize;i++){ listCheckStatus.set(i, boo); } } @Override public int getCount() { return listSize; } @Override public Object getItem(int position) { return listCheckStatus.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; Boolean checkStatus = listCheckStatus.get(position); convertView = layoutInflater.inflate(R.layout.main_list_item, null); viewHolder = new ViewHolder(); viewHolder.cb = (CheckBox)convertView.findViewById(R.id.main_list_item_cb); viewHolder.img = (ImageView)convertView.findViewById(R.id.main_list_item_icon); viewHolder.title = (TextView)convertView.findViewById(R.id.main_list_item_title); switch(position%3){ case 0:viewHolder.img.setBackgroundResource(R.drawable.flower); viewHolder.title.setText("花朵..."); break; case 1:viewHolder.img.setBackgroundResource(R.drawable.cattle); viewHolder.title.setText("大牛..."); break; case 2:viewHolder.img.setBackgroundResource(R.drawable.light); viewHolder.title.setText("灯泡..."); break; } viewHolder.cb.setId(position); viewHolder.cb.setChecked(checkStatus); viewHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { listCheckStatus.set(buttonView.getId(), isChecked); notifyDataSetChanged(); }}); return convertView; } }
main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#ffffff"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@id/button_main_selectall" android:text="@string/selectall" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="16.0dip" /> <Button android:id="@id/button_main_unselectall" android:text="@string/unselectall" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="16.0dip" /> </LinearLayout> <ListView android:id="@id/listview_main" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="@null" android:background="@drawable/anim_list_back"/> </LinearLayout>
main_list_item.xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@id/main_list_item_icon" android:layout_width="66.0dip" android:layout_height="66.0dip" android:contentDescription="@string/left"/> <TextView android:id="@id/main_list_item_title" android:layout_width="wrap_content" android:textColor="#ffff00" android:layout_toRightOf="@id/main_list_item_icon" android:layout_height="wrap_content" android:layout_centerVertical="true"/> <CheckBox android:id="@id/main_list_item_cb" android:layout_width="wrap_content" android:layout_alignParentRight="true" android:layout_height="wrap_content" android:layout_centerVertical="true"/> </RelativeLayout>
源码免费下载地址:http://download.csdn.net/detail/xuweilinjijis/5185996
第一财经日报 李娜 王滋
“微软从1992年开始进入中国,现在还在面临打击盗版的挑战。”微软公司OEM事业部副总裁郝哲思昨日在接受《第一财经日报》采访时表示,微 软今年将进一步加大打击盗版的力度,将会对广州及深圳地区14家销售和安装了盗版Windows系统的品牌个人电脑经销商采取法律行动。此前,北京已有 16家相关经销商接到了类似的侵权警告。
根据IDC调查,目前市面预装软件的电脑中,有78%的个人电脑处于高危状态,因盗版软件而感染恶意程序,成为黑客们攻击的目标。而微软是受盗版影响最大的软件巨头之一。
公开资料显示,2004年微软的Windows操作系统中国的盗版率达90%,2006年这一比例下降至82%。2011年,微软CEO鲍尔默指责中国的盗版因素影响了微软的收入。微软在中国的销售额甚至还赶不上人口不及中国2%的马来西亚。
IDC的调研显示,目前盗版软件的来源渠道众多,前三大盗版软件主要来源于在线网站和街边市场以及朋友间的相互借用,而在线网站、P2P网站的 下载占到盗版软件渠道来源的43%。街边市场售卖盗版产品的情况也比较严重,盗版软件的光盘价格通常只是在4到7美元,数量相当庞大。
郝哲思对记者表示,微软已经开始对全国40余城市的传统IT卖场和商场销售的个人电脑进行抽样调查,并且对部分经销商提出了警告。
“去年开始我们不在中国内地推出光盘版的Win8,用户要使用正版Win8只有两个途径:通过微软的官方网站在线付费升级或购买一台预装 Win8的新电脑。”微软大中华区副总裁张永利对记者表示,另外通过和一些合作伙伴如国美、联想等合作,从源头上减少盗版带来的损害。
面对中国大面积的盗版现象,微软进入中国之初,采取了一些国际通行的反盗版措施,主要是诉诸法律。
1999年,微软起诉亚都科技公司失利。此后,微软公司又耗资近1亿美元,把包括深圳华为、北大方正等多家中国知名企业列入调查名单,但均无功 而返。从2000年开始微软的反盗版陷入低谷,转而把市场重点收缩到北京、上海、广州、成都等地,并成立独立于政府之外的盗版监督机构,但均收效甚微。
近年来,微软也开始通过不断降低产品售价,以争取更多习惯于使用盗版的中国用户。
KDE开发者Jeff Mitchell在博客中记录了2013年KDE最大灾难:2013 年3月22日,root git服务器(git.kde.org)因安全原因下线,在应用了安全更新之后服务器重新上线,然而当git.kde.org虚拟机重新启动后,虚拟机检 查到 ext4文件系统损毁,但不清楚损毁是服务器更新导致还是发生在之前。接着开发者检查了1500个KDE镜像Git库,发现每个镜像都自动同步了root git服务器的损毁文件,删除了实际上正确的KDE库。损毁被完美镜像了。幸运的是projects.kde.org服务器正在更新硬件,成为极少数没有 同步损毁文件的KDE库镜像。Mitchell进一步解释说,他们有备份机制,但由于服务器多是志愿者捐赠的,他们没有多少空间可以随时随地备份900 GB的存档。