Notice
Recent Posts
Recent Comments
올해는 머신러닝이다.
listview 제목줄 나누기 본문
출처 :
http://blogingtutorials.blogspot.com/2010/11/android-listview-header-two-or-more-in.html
Hello Friends,
There are two or many more header listview in android. So Today we are discussed about the two header of android.
And See Also Simple Listview Display In Android Device.
So This are the all java and xml file given below. and this are the very useful projects.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="true"
/>
header.xml
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" android:scrollbars="none"
style="?android:attr/listSeparatorTextViewStyle" />
Now The java File code Given below.
SectionedAdapter .java
package com.android.listview;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import java.util.ArrayList;
import java.util.List;
abstract public class SectionedAdapter extends BaseAdapter {
abstract protected View getHeaderView(String caption, int index,
View convertView, ViewGroup parent);
private Listsections = new ArrayList();
private static int TYPE_SECTION_HEADER = 1;
public SectionedAdapter() {
super();
}
public void addSection(String caption, Adapter adapter) {
sections.add(new Section(caption, adapter));
}
public Object getItem(int position) {
for (Section section : this.sections) {
if (position == 0) {
return (section);
}
int size = section.adapter.getCount() + 1;
if (position <>
return (section.adapter.getItem(position - 1));
}
position -= size;
}
return (null);
}
public int getCount() {
int total = 0;
for (Section section : this.sections) {
total += section.adapter.getCount() + 1; // add one for header
}
return (total);
}
public int getViewTypeCount() {
int total = 1; // one for the header, plus those from sections
for (Section section : this.sections) {
total += section.adapter.getViewTypeCount();
}
return (total);
}
public int getItemViewType(int position) {
int typeOffset = TYPE_SECTION_HEADER + 1; // start counting from here
for (Section section : this.sections) {
if (position == 0) {
return (TYPE_SECTION_HEADER);
}
int size = section.adapter.getCount() + 1;
if (position <>
return (typeOffset + section.adapter
.getItemViewType(position - 1));
}
position -= size;
typeOffset += section.adapter.getViewTypeCount();
}
return (-1);
}
public boolean areAllItemsSelectable() {
return (false);
}
public boolean isEnabled(int position) {
return (getItemViewType(position) != TYPE_SECTION_HEADER);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int sectionIndex = 0;
for (Section section : this.sections) {
if (position == 0) {
return (getHeaderView(section.caption, sectionIndex,
convertView, parent));
}
int size = section.adapter.getCount() + 1;
if (position <>
return (section.adapter.getView(position - 1, convertView,
parent));
}
position -= size;
sectionIndex++;
}
return (null);
}
@Override
public long getItemId(int position) {
return (position);
}
class Section {
String caption;
Adapter adapter;
Section(String caption, Adapter adapter) {
this.caption = caption;
this.adapter = adapter;
}
}
}
Selection.java
package com.commonsware.android.listview;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class SectionedDemo extends ListActivity {
private static String[] items = { "US", "UK", "CANADA", "JAPAN", "SINGAPORE",
"INDIA", "CHINA" };
private static String[] Sect = { "GOOGLE", "FACEBOOK","DELL" };
private static String[] Doc = { "FRONT", "TOP","BACK" };
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
adapter.addSection("step 1", new ArrayAdapter(this,
android.R.layout.simple_list_item_1, items));
adapter.addSection("Step 2", new ArrayAdapter(this,
android.R.layout.simple_list_item_1, Sect));
adapter.addSection("Step 3", new ArrayAdapter(this,
android.R.layout.simple_list_item_1, Doc));
setListAdapter(adapter);
}
SectionedAdapter adapter = new SectionedAdapter() {
protected View getHeaderView(String caption, int index,
View convertView, ViewGroup parent) {
TextView result = (TextView) convertView;
if (convertView == null) {
result = (TextView) getLayoutInflater().inflate(
R.layout.header, null);
}
result.setText(caption);
return (result);
}
};
}
And Now The output given below.
Hello Friends,
There are two or many more header listview in android. So Today we are discussed about the two header of android.
And See Also Simple Listview Display In Android Device.
So This are the all java and xml file given below. and this are the very useful projects.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="true"
/>
header.xml
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" android:scrollbars="none"
style="?android:attr/listSeparatorTextViewStyle" />
Now The java File code Given below.
SectionedAdapter .java
package com.android.listview;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseAdapter;
import java.util.ArrayList;
import java.util.List;
abstract public class SectionedAdapter extends BaseAdapter {
abstract protected View getHeaderView(String caption, int index,
View convertView, ViewGroup parent);
private List
private static int TYPE_SECTION_HEADER = 1;
public SectionedAdapter() {
super();
}
public void addSection(String caption, Adapter adapter) {
sections.add(new Section(caption, adapter));
}
public Object getItem(int position) {
for (Section section : this.sections) {
if (position == 0) {
return (section);
}
int size = section.adapter.getCount() + 1;
if (position <>
return (section.adapter.getItem(position - 1));
}
position -= size;
}
return (null);
}
public int getCount() {
int total = 0;
for (Section section : this.sections) {
total += section.adapter.getCount() + 1; // add one for header
}
return (total);
}
public int getViewTypeCount() {
int total = 1; // one for the header, plus those from sections
for (Section section : this.sections) {
total += section.adapter.getViewTypeCount();
}
return (total);
}
public int getItemViewType(int position) {
int typeOffset = TYPE_SECTION_HEADER + 1; // start counting from here
for (Section section : this.sections) {
if (position == 0) {
return (TYPE_SECTION_HEADER);
}
int size = section.adapter.getCount() + 1;
if (position <>
return (typeOffset + section.adapter
.getItemViewType(position - 1));
}
position -= size;
typeOffset += section.adapter.getViewTypeCount();
}
return (-1);
}
public boolean areAllItemsSelectable() {
return (false);
}
public boolean isEnabled(int position) {
return (getItemViewType(position) != TYPE_SECTION_HEADER);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int sectionIndex = 0;
for (Section section : this.sections) {
if (position == 0) {
return (getHeaderView(section.caption, sectionIndex,
convertView, parent));
}
int size = section.adapter.getCount() + 1;
if (position <>
return (section.adapter.getView(position - 1, convertView,
parent));
}
position -= size;
sectionIndex++;
}
return (null);
}
@Override
public long getItemId(int position) {
return (position);
}
class Section {
String caption;
Adapter adapter;
Section(String caption, Adapter adapter) {
this.caption = caption;
this.adapter = adapter;
}
}
}
Selection.java
package com.commonsware.android.listview;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class SectionedDemo extends ListActivity {
private static String[] items = { "US", "UK", "CANADA", "JAPAN", "SINGAPORE",
"INDIA", "CHINA" };
private static String[] Sect = { "GOOGLE", "FACEBOOK","DELL" };
private static String[] Doc = { "FRONT", "TOP","BACK" };
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
adapter.addSection("step 1", new ArrayAdapter
android.R.layout.simple_list_item_1, items));
adapter.addSection("Step 2", new ArrayAdapter
android.R.layout.simple_list_item_1, Sect));
adapter.addSection("Step 3", new ArrayAdapter
android.R.layout.simple_list_item_1, Doc));
setListAdapter(adapter);
}
SectionedAdapter adapter = new SectionedAdapter() {
protected View getHeaderView(String caption, int index,
View convertView, ViewGroup parent) {
TextView result = (TextView) convertView;
if (convertView == null) {
result = (TextView) getLayoutInflater().inflate(
R.layout.header, null);
}
result.setText(caption);
return (result);
}
};
}
And Now The output given below.
'Android > Tip&Tech' 카테고리의 다른 글
cursor 관련 팁 블로그 (0) | 2012.01.11 |
---|---|
Separating Lists with Headers in Android 0.9 (1) | 2012.01.01 |
Looper Handler Thread [출처] Looper Handler Thread (1)|작성자 커트 (0) | 2011.12.26 |
Multipart form-date 내용 (0) | 2011.12.26 |
Android: how to create transparent or opeque background (0) | 2011.12.22 |