import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.sec.android.touchwiz.samples.R;
public class ListLayoutSample3Xml extends Activity {
ListView mListView;
private final String LOG_TAG_LISTLAYOUTSAMPLE3 = "ListLayoutSample3Xml";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listlayoutsample3xml_main);
mListView = (ListView)findViewById(R.id.contactCheckList);
// [09.10.23] ListView? choiceMode? CHOICE_MODE_MULTIPLE? ????
// ??? item? check?? ??? ?
// [E] Set ListView's choiceMode to CHOICE_MODE_MULTIPLE for multi check.
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
ArrayList<ContactItem> list = new ArrayList<ContactItem>();
for(int i=0;i<mName.length;i++){
ContactItem contact = new ContactItem(mThumbs , mName
);
list.add(contact);
}
// ContactAdapter ??
ContactAdapter cAdapter = new ContactAdapter(this, R.layout.listlayoutsample3xml_row, list);
// ListView? ContactAdapter? ??
mListView.setAdapter(cAdapter);
}
/*
* ContactItem? ??? Thumbnail data
*/
private Integer[] mThumbs = {
R.drawable.listlayoutsample3xml_1,
R.drawable.listlayoutsample3xml_2,
R.drawable.listlayoutsample3xml_3,
R.drawable.listlayoutsample3xml_4,
R.drawable.listlayoutsample3xml_5,
R.drawable.listlayoutsample3xml_seankingston,
R.drawable.listlayoutsample3xml_karina,
R.drawable.listlayoutsample3xml_jayz,
R.drawable.listlayoutsample3xml_madonna};
/*
* ContactItem? ??? FullName data
*/
private String[] mName =
{
"Anna Bay",
"Agatha Christina",
"Agnes Green",
"Mom",
"July",
"Sean Kingston",
"Karina",
"Jay-Z",
"Madonna"
};
/*
* ListView? ???? Adapter. ArrayAdapter? ???? ??.
* ContactItem type? data?? ArrayList? ???.
*/
private class ContactAdapter extends ArrayAdapter<ContactItem> {
private ArrayList<ContactItem> items;
public ContactAdapter(Context context, int textViewResourceId, ArrayList<ContactItem> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listlayoutsample3xml_row, null);
}
ContactItem ti = items.get(position);
if (ti != null) {
ImageView thumbview = (ImageView) v.findViewById(R.id.photo1);
TextView nameview = (TextView) v.findViewById(R.id.text1);
final CheckBox check = (CheckBox) v.findViewById(R.id.checkbox1);
if (thumbview != null){
thumbview.setImageResource(ti.getContactThumb());
}
if (nameview != null){
nameview.setText(ti.getFullName());
}
if(check != null) {
final int myPosition = position;
check.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
check.post(new Runnable() {
public void run() {
boolean fchecked = check.isChecked();
onBtnCheckChanged(myPosition, fchecked);
}
});
}
});
}
}
return v;
}
}
private void onBtnCheckChanged(int position, boolean check) {
Log.d(LOG_TAG_LISTLAYOUTSAMPLE3,"onBtnCheckChanged("+position+","+check+")");
mListView.setItemChecked(position, check);
}
/**
* @author cooldawn.kim
*
* Contact Item
*/
class ContactItem{
private Integer mContactThumb;
private String mFullName;
public ContactItem( Integer thumb, String fullName )
{
this.mContactThumb = thumb;
this.mFullName = fullName;
}
public Integer getContactThumb(){
return mContactThumb;
}
public String getFullName(){
return mFullName;
}
} // class ContactItem
public static class ItemView extends LinearLayout implements Checkable {
public ItemView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean isChecked() {
CheckBox check = findCheckBox();
if(check != null) {
return check.isChecked();
}
return false;
}
public void setChecked(boolean checked) {
Log.d("ItemView", "setChecked("+checked+")");
CheckBox check = findCheckBox();
if(check != null) {
check.setChecked(checked);
}
}
public void toggle() {
CheckBox check = findCheckBox();
if(check != null) {
check.toggle();
}
}
private CheckBox findCheckBox() {
View check = findViewById(R.id.checkbox1);
if(check != null && check instanceof CheckBox) {
return (CheckBox)check;
}
return null;
}
}
}
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.sec.android.touchwiz.samples.R;
public class ListLayoutSample3Xml extends Activity {
ListView mListView;
private final String LOG_TAG_LISTLAYOUTSAMPLE3 = "ListLayoutSample3Xml";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listlayoutsample3xml_main);
mListView = (ListView)findViewById(R.id.contactCheckList);
// [09.10.23] ListView? choiceMode? CHOICE_MODE_MULTIPLE? ????
// ??? item? check?? ??? ?
// [E] Set ListView's choiceMode to CHOICE_MODE_MULTIPLE for multi check.
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
ArrayList<ContactItem> list = new ArrayList<ContactItem>();
for(int i=0;i<mName.length;i++){
ContactItem contact = new ContactItem(mThumbs
list.add(contact);
}
// ContactAdapter ??
ContactAdapter cAdapter = new ContactAdapter(this, R.layout.listlayoutsample3xml_row, list);
// ListView? ContactAdapter? ??
mListView.setAdapter(cAdapter);
}
/*
* ContactItem? ??? Thumbnail data
*/
private Integer[] mThumbs = {
R.drawable.listlayoutsample3xml_1,
R.drawable.listlayoutsample3xml_2,
R.drawable.listlayoutsample3xml_3,
R.drawable.listlayoutsample3xml_4,
R.drawable.listlayoutsample3xml_5,
R.drawable.listlayoutsample3xml_seankingston,
R.drawable.listlayoutsample3xml_karina,
R.drawable.listlayoutsample3xml_jayz,
R.drawable.listlayoutsample3xml_madonna};
/*
* ContactItem? ??? FullName data
*/
private String[] mName =
{
"Anna Bay",
"Agatha Christina",
"Agnes Green",
"Mom",
"July",
"Sean Kingston",
"Karina",
"Jay-Z",
"Madonna"
};
/*
* ListView? ???? Adapter. ArrayAdapter? ???? ??.
* ContactItem type? data?? ArrayList? ???.
*/
private class ContactAdapter extends ArrayAdapter<ContactItem> {
private ArrayList<ContactItem> items;
public ContactAdapter(Context context, int textViewResourceId, ArrayList<ContactItem> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listlayoutsample3xml_row, null);
}
ContactItem ti = items.get(position);
if (ti != null) {
ImageView thumbview = (ImageView) v.findViewById(R.id.photo1);
TextView nameview = (TextView) v.findViewById(R.id.text1);
final CheckBox check = (CheckBox) v.findViewById(R.id.checkbox1);
if (thumbview != null){
thumbview.setImageResource(ti.getContactThumb());
}
if (nameview != null){
nameview.setText(ti.getFullName());
}
if(check != null) {
final int myPosition = position;
check.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
check.post(new Runnable() {
public void run() {
boolean fchecked = check.isChecked();
onBtnCheckChanged(myPosition, fchecked);
}
});
}
});
}
}
return v;
}
}
private void onBtnCheckChanged(int position, boolean check) {
Log.d(LOG_TAG_LISTLAYOUTSAMPLE3,"onBtnCheckChanged("+position+","+check+")");
mListView.setItemChecked(position, check);
}
/**
* @author cooldawn.kim
*
* Contact Item
*/
class ContactItem{
private Integer mContactThumb;
private String mFullName;
public ContactItem( Integer thumb, String fullName )
{
this.mContactThumb = thumb;
this.mFullName = fullName;
}
public Integer getContactThumb(){
return mContactThumb;
}
public String getFullName(){
return mFullName;
}
} // class ContactItem
public static class ItemView extends LinearLayout implements Checkable {
public ItemView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean isChecked() {
CheckBox check = findCheckBox();
if(check != null) {
return check.isChecked();
}
return false;
}
public void setChecked(boolean checked) {
Log.d("ItemView", "setChecked("+checked+")");
CheckBox check = findCheckBox();
if(check != null) {
check.setChecked(checked);
}
}
public void toggle() {
CheckBox check = findCheckBox();
if(check != null) {
check.toggle();
}
}
private CheckBox findCheckBox() {
View check = findViewById(R.id.checkbox1);
if(check != null && check instanceof CheckBox) {
return (CheckBox)check;
}
return null;
}
}
}