展会信息港展会大全

listview与checkbox联合使用
来源:互联网   发布日期:2015-11-26 14:49:58   浏览:1994次  

导读:效果图如下:退码如下:MainActivity.java:嬀樀愀瘀愀崀瀀愀挀欀愀最攀 com.google.activity;椀洀瀀漀爀琀 com.google.R...

效果图如下:

源码如下:

MainActivity.java:

[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;

}

}

}

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:

[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;

}

}

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:

[html]

<?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>

<?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:

[html]

<?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>

<?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>

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港