SlideShare a Scribd company logo
1 of 54
Download to read offline
Adapter & ListView
2010.10.23
agenda
•
Adapter - one of the GOF design pattern –
•
ListView
•
ExpadableListView
Adapter
●
GoF (Gang of Four) によって定義されたデザイン
パターンの一つ
●
既存のクラスに修正不要
●
インタフェースを変更可能
●
ListView の adapter は委譲のパターン
ListView
●
1行が1つの View
●
チェックボタンやラジオボタンを付けられる
Adapters for List
•
interface
–
ListAdapter
–
SpinnerAdapter
–
WarrerListAdapter
•
abstruct class
–
BaseAdapter
–
CursorAdapter
–
ResourceCursorAdapter
•
class
–
ArrayAdapter
–
HeaderViewListAdapter
–
SimpleAdapter
–
SimpleCursorAdapter
SimpleAdapter
SimpleAdapter
•
What is
–
static data を XML ファイルで
定義された TextView や
ImageView に紐づけるための簡
単な adapter
•
What views can use?
–
TextView
–
ImageView
–
ChackedTextView
•
Way to bind
1. SimpleAdapter.ViewBinder が
セットされていたら、このクラ
スの setViewValue メソッドが
呼ばれる
2. 1. が false の場合、setTextView
が呼ばれる
3. 2. が false の場
合、setImageView が呼ばれる
* setViewBinder() で独自の
SimpleAdapter.ViewBinder を
セットすれば、TextView,
ImageView 以外の View を使え
る
SimpleAdapter
•
Constructors
–
parameters
• context :
SimpleAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• data :
Map の List. List の 1 エントリ が ListView の 1行に相当する
Map は from で指定した各文字列がキーになった
data を持ってなければならない
• resource :
ListView の 1行のレイアウト XML ファイルの Resource ID
このレイアウトには、 to で指定した各 Id の View が
含まれていなければならない
• from :
各 View に紐づける Map data のキー
• to :
from パラメータの各 data を紐づける View の Id
SimpleAdapter(Context context, List<? extends Map<String, ?>>
data, int resource, String[] from, int[] to)
SimpleAdapter
•
Constructors
SimpleAdapter( this, data, R.layout.list_item, from, to)
res/layout/list_item.xml
<LinearLayout
android:orientation=“horizontal” >
<TextView
android:id=“@+id/textview1” />
<TextView
android:id=“@+id/textview2” />
</LinearLayout>
int[] to = {R.id.textview1, R.id.textview2};
textview2
textview1
SimpleAdapter
•
Constructors
SimpleAdapter( this, data, R.layout.list_item, from, to)
static final List<HashMap<String, String> data =
Arrays.asList(
new HashMap<String, String>() {
put(“Title”, “ 吾輩は猫である”);
put(“Author”, “夏目漱石”);
},
…
new HashMap<String, String>() {
put(“Title”, “ 走れメロス”);
put(“Author”, “太宰治”);
}
);
String[] from = {“Title”, “Author”};
textview2
textview1
SimpleAdapter
•
Constructors
SimpleAdapter( this, data, R.layout.list_item, from, to)
textview2
textview1
SimpleAdapter
•
Constructors
SimpleAdapter( this, data, R.layout.list_item, from, to)
res/layout/list_item.xml
<LinearLayout
android:orientation=“horizontal” >
<ImageView
android:id=“@+id/imageview1” />
<ImageView
android:id=“@+id/imageview2” />
</LinearLayout>
int[] to = {R.id.imageview1, R.id.imageview2};
imageview2
imageview1
SimpleAdapter
•
Constructors
static final List<HashMap<String, Integer> data =
Arrays.asList(
new HashMap<String, Integer>() {
put(“Icon1”, R.drawable.alermclock);
put(“Icon2”, R.id.bookopen);
},
…
new HashMap<String, Integer>() {
put(“Icon1”, R.id.calculator);
put(“Icon2”, R.id.camera);
}
);
String[] from = {“Icon1”, “Icon2”};
imageview2
imageview1
SimpleAdapter( this, data, R.layout.list_item, from, to)
SimpleAdapter
•
Constructors
imageview2
imageview1
SimpleAdapter( this, data, R.layout.list_item, from, to)
SimpleAdapter
●
Notes
●
異なるデータ型を一緒に含むことができない
●
文字列(String)と resource ID(Integer)を一緒にできない
●
データ型を Object にすればできます!!
imageview
textview
static final List<HashMap<String, Object> data =
Arrays.asList(
new HashMap<String, String>() {
put(“Icon”, R.id.soseki);
put(“Author”, “夏目漱石”);
},
…
new HashMap<String, String>() {
put(“Icon”, R.id.dazai);
put(“Author”, “太宰治”);
}
);
SimpleCursorAdapter
SimpleCursorAdapter
•
What is
–
Cursor から取得したカラムを
XML ファイルで定義された
TextView や ImageView に紐づけ
るための簡単な adapter
•
What views can use?
–
TextView
–
ImageView
–
ChackedTextView
•
Way to bind
1. SimpleAdapter.ViewBinder が
セットされていたら、このクラ
スの setViewValue メソッドが
呼ばれる
2. 1. が false の場合、setTextView
が呼ばれる
3. 2. が false の場
合、setImageView が呼ばれる
* setViewBinder() で独自の
SimpleAdapter.ViewBinder を
セットすれば、TextView,
ImageView 以外の View を使
える
SimpleCursorAdapter
•
Constructors
–
parameters
• context :
SimpleAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• c :
データベースの cursor
cursor がまだ使えないときは null でも OK
• resource :
ListView の 1行のレイアウト XML ファイルの Resource ID
このレイアウトには、 to で指定した各 Id の View が
含まれていなければならない
• from :
各 View に紐づける cursor data の column name
cursor がまだ使えないときは null でも OK
• to :
from パラメータの各 data を紐づける View の Id
SimpleAdapter( Context context, int resource, Cursor c, String[]
from, int[] to)
SimpleCursorAdapter
●
Notes
●
List<? extends Map<String, ?>> data が Cursor c になった
だけで、 SimpleAdapter と同じ
●
もちろん、異なるデータ型を含むことができる
imageview
textview
できる! ^ ^
ArrayAdapter
ArrayAdapter
•
What is
–
任意の Object の配列を
ListView に紐づけるための
adapter
•
What views can use?
–
TextView (デフォルト)
–
任意の View
•
Way to bind
1. デフォルトは 1行 = TextView
2. id を指定すれば、レイアウト
内の任意の TextView に紐づけ
可能
3. 任意の Object の配列を紐づけ
る場合、toString() を override
すれば、その戻り値が
TextView に入る
4. ImageView など toString() を
戻り値がふさわしくない場合
、getView(int, View,
ViewGroup) を override する
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource:
TextView が1つだけ含まれるレイアウトファイルの resource Id
レイアウトファイルの root view が TextView でなければならない
ArrayAdapter(Context context, int resource)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item)
Note
List の 1行は TextView になる
紐づけるデータは add(T object) で追加する
textview
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource :
ListView の 1行のレイアウト XML ファイルの Resource ID
このレイアウトには、 textViewResourceId で指定した Id の TextView が
含まれていなければならない
• textViewResourceId :
TextView の resource Id
ArrayAdapter(Context context, int resource, int textViewResourceId)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item, R.id.textview)
Note
List の 1行のどこかに adapter と紐付く TextView
が含まれる
紐づけるデータは add(T object) で追加する
textview
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource :
TextView が1つだけ含まれるレイアウトファイルの resource Id
レイアウトファイルの root view が TextView でなければならない
• Object :
各 View に紐づける T クラス (String, 独自クラスなど) の配列
toString() の戻り値が TextView に入れられる
ArrayAdapter(Context context, int resource, T[] Object)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item, data)
String[] data = {“夏目漱石”, “太宰治”, … };
Note
List の 1行は TextView になる
TextView に表示される文字は toString() の戻り値
textview
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource :
ListView の 1行のレイアウト XML ファイルの Resource ID
このレイアウトには、 textViewResourceId で指定した Id の TextView が
含まれていなければならない
• textViewResrouceId :
TextView の resource Id
• Object :
各 View に紐づける T クラス (String, 独自クラスなど) の配列
toString() の戻り値が TextView に入れられる
ArrayAdapter(Context context, int resrouce, int textViewResourceId,
T[] Object)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item, R.id.textview, data)
String[] data = {“夏目漱石”, “太宰治”, … };
Note
List の 1行のどこかに adapter と紐付く TextView
が含まれる
TextView に表示される文字は toString() の戻り値
textview
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource :
TextView が1つだけ含まれるレイアウトファイルの resource Id
レイアウトファイルの root view が TextView でなければならない
• Object :
各 View に紐づける T クラス (String, 独自クラスなど) の List
toString() の戻り値が TextView に入れられる
ArrayAdapter(Context context, int resource, List<T> Object)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item, data)
List<String> data = new ArrayList<String>();
data.add (“夏目漱石”);
data.add(“太宰治”);
Note
List の 1行は TextView になる
TextView に表示される文字は toString() の戻り値
textview
ArrayAdapter
•
Constructors
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• resource :
ListView の 1行のレイアウト XML ファイルの Resource ID
このレイアウトには、 textViewResourceId で指定した Id の TextView が
含まれていなければならない
• textViewResrouceId :
TextView の resource Id
• Object :
各 View に紐づける T クラス (String, 独自クラスなど) の List
toString() の戻り値が TextView に入れられる
ArrayAdapter(Context context, int resource, int textViewResourceId,
List<T> Object)
ArrayAdapter
•
Constructors
ArrayAdapter(this, R.layout.list_item, R.id.textview, data)
List<String> data = new ArrayList<String>();
data.add (“夏目漱石”);
data.add(“太宰治”);
Note
List の 1行のどこかに adapter と紐付く
TextView が含まれる
TextView に表示される文字は toString() の
戻り値
textview
ArrayAdapter
•
Get static adapter
–
parameters
• context :
ArrayAdapter が紐付く View が動作する Context
this, getApplicationContext() など
• textArrayResourceId :
文字列の配列が定義されている resource Id
res/values/arrays.xml など
• resource :
TextView が1つだけ含まれるレイアウトファイルの resource Id
レイアウトファイルの root view が TextView でなければならない
–
Returns
• static ArrayAdapter<CharSequence>
ArrayAdapter.createFromResource(Context context, int
textArrayResrouceId, int resource)
ArrayAdapter
•
Get static adapter
ArrayAdapter(this, R.array.authors, R.layout.list_item, data)
res/values/arrays.xml
<string-array name=“authors”>
<item>夏目漱石</item>
<item>太宰治</item>
</string-array>
Note
List の 1行は TextView になる
TextView に表示される文字は resource の string-
array で定義した各文字列
textview
extends ArrayAdapter
extends ArrayAdapter
•
Point
–
getView() を Override する
–
ViewHolder を使う
•
Example – ImageView and TextView
–
ListView に紐づけるデータ用のクラスを定義
–
ViewHolder 用のクラスを定義
class bindData {
String text;
int imageResourceId;
}
static class ViewHolder {
TextView textView;
ImageView imageView;
}
extends ArrayAdapter
public class MyAdapter extends ArrayAdapter<bindData> {
private LayoutInflater inflater;
public MyAdapter(Context context, List<ImageAndString> objects) {
super(context, 0, objects);
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
•
Point
–
View を生成するための LayoutInflater を取得する
–
親クラス (ArrayAdapter) のコンストラクタの textViewResoruceId
には 0 を渡す
•
Example – ImageView and TextView
–
getSystemService(Context.LAYOUT_INFLATER_SERVICE) を使う
extends ArrayAdapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, parent, false);
holder = new ViewHolder();
holder.textView = (TextView) convertView.findViewById(R.id.textview);
holder.imageView = (ImageView) convertView.findViewById(R.id.imageview);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
bindData data= getItem(position);
holder.textView.setText(data.text);
holder.imageView.setImageResource(data.imageResourceId);
return convertView;
}
}
extends ArrayAdapter
●
Point
●
複雑なレイアウトでもOK
●
いろんな View に別々の型のデータを紐づけられる
●
データ用のクラスの List (or 配列)の要素数と ListView の
行数は同じ
imageview
textview
extends BaseAdapter
extends BaseAdapter
●
Point
●
複雑なレイアウトでもOK
●
データのリストを管理を自分でできる
ExpandableListView
Adaptears for ExpandableList
•
public interface
–
ExpandableListAdapter
–
HeterogeneousExpandableList
•
public abstruct class
–
BaseExpandableListAdapter
–
CursorTreeAdapter
–
ResourceCursorTreeAdapter
•
public class
–
SimpleExpandableListAdapter
SimpleExpandableListAdapter
SimpleExpandableListAdapter
•
Constructors
–
parameters
• groupData, groupLayout, groupFrom,
groupTo :
group (= とじたとき) に関する引数
SimpleAdapter と同じ
• childData, childLayout, childFrom, childTo :
Child (= 開いたとき) に関する引数
SimpleAdapter と同じ
SimpleExpandableListAdapter(Context context,
List<? extendsMap<String, ?>> groupData, int groupLayout,
String[] groupFrom, int[] groupTo,
List<? extends List<? extends Map<String, ?>>> childData,
int childLayout, String[] childFrom, int[] childTo)
SimpleExpandableListAdapter
•
Constructors
SimpleExpandableListAdapter(this,
groupData, R.layout.list_item1, groupFrom, groupTo,
childData, R.layout.list_item2, childFrom, childTo)
res/layout/list_item1.xml
<LinearLayout
android:orientation=“horizontal” >
<ImageView
/>
<TextView
android:id=“@+id/textview” />
</LinearLayout>
int[] groupTo = {R.id.textview};
textview
SimpleExpandableListAdapter
•
Constructors
static final List<HashMap<String, String>
groupData =
Arrays.asList(
new HashMap<String, String>() {
put(“Author”, “夏目漱石”);
},
…
new HashMap<String, String>() {
put(“Author”, “太宰治”);
}
);
String[] groupFrom = {“Author”};
SimpleExpandableListAdapter(this,
groupData, R.layout.list_item1, groupFrom, groupTo,
childData, R.layout.list_item2, childFrom, childTo)
textview
SimpleExpandableListAdapter
•
Constructors
res/layout/list_item2.xml
<LinearLayout
android:orientation=“horizontal” >
<TextView
android:id=“@+id/textview1” />
<TextView
android:id=“@+id/textview2” />
</LinearLayout>
int[] childTo = {R.id.textview1, R.id.textview2};
textview2
textview1
SimpleExpandableListAdapter(this,
groupData, R.layout.list_item1, groupFrom, groupTo,
childData, R.layout.list_item2, childFrom, childTo)
SimpleExpandableListAdapter
•
Constructors
List<List<HashMap<String, String> childData = new
ArrayList<List<HashMap<String, String>();
static final List<HashMap<String, String> firstChildData =
Arrays.asList(
new HashMap<String, String>() {
put(“Title”, “吾輩は猫である”);
put(“Date”, “1905年”);
},
…
new HashMap<String, String>() {
put(“Title”, “坊ちゃん”);
put(“Date”, “1906年”);
}
);
childData.add(firstChildData);
String[] childFrom = {“Title”, “Date”};
textview2textview2
textview1
SimpleExpandableListAdapter(this,
groupData, R.layout.list_item1, groupFrom, groupTo,
childData, R.layout.list_item2, childFrom, childTo)
SimpleExpandableListAdapter
•
Constructors
SimpleExpandableListAdapter(this,
groupData, R.layout.list_item1, groupFrom, groupTo,
childData, R.layout.list_item2, childFrom, childTo)
textview2
textview1
SimpleExpandableListAdapter
●
Notes
●
異なるデータ型を一緒に含むことができない
●
文字列(String)と resource ID(Integer)を一緒にできない
●
データ型を Object にすればできます!!
imageview
textview
List<List<HashMap<String, Object> childData = new
ArrayList<List<HashMap<String, Object>();
static final List<HashMap<String, Object> firstChildData =
Arrays.asList(
new HashMap<String, String>() {
put(“Icon”, R.id.waganeko);
put(“Title”, “吾輩は猫である”);
},
…
new HashMap<String, String>() {
put(“Icon”, R.id.bochyan);
put(“Title”, “坊ちゃん”);
}
);
childData.add(firstChildData);
extends BaseExpandableListAdapter
extends BaseExpandableListAdapter
●
Point
●
複雑なレイアウトでもOK
●
データのリストを管理を自分でできる

More Related Content

Viewers also liked

Fragment を使ってみよう
Fragment を使ってみようFragment を使ってみよう
Fragment を使ってみようYuki Anzai
 
Watch face アプリを公開してみた
Watch face アプリを公開してみたWatch face アプリを公開してみた
Watch face アプリを公開してみたYuki Anzai
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on AndroidYuki Anzai
 
マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向Yuki Anzai
 
Lecture Slides for List Views [Android ]
Lecture Slides for List Views [Android ]Lecture Slides for List Views [Android ]
Lecture Slides for List Views [Android ]Nehil Jain
 
Android Layout 3分クッキング
Android Layout 3分クッキングAndroid Layout 3分クッキング
Android Layout 3分クッキングYuki Anzai
 
Android Layout Cookbook Seminor
Android Layout Cookbook SeminorAndroid Layout Cookbook Seminor
Android Layout Cookbook SeminorYuki Anzai
 
Android development - ListView & Adapter
Android development - ListView & AdapterAndroid development - ListView & Adapter
Android development - ListView & AdapterLope Emano
 
ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]Somkiat Khitwongwattana
 
Android tutorial points
Android tutorial pointsAndroid tutorial points
Android tutorial pointsbsb_2209
 
Android ui adapter
Android ui adapterAndroid ui adapter
Android ui adapterKrazy Koder
 
Android sync adapter
Android sync adapterAndroid sync adapter
Android sync adapterAlex Tumanoff
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Khaled Anaqwa
 
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Mohamed Saleh
 

Viewers also liked (19)

Fragment を使ってみよう
Fragment を使ってみようFragment を使ってみよう
Fragment を使ってみよう
 
Watch face アプリを公開してみた
Watch face アプリを公開してみたWatch face アプリを公開してみた
Watch face アプリを公開してみた
 
Head First XML Layout on Android
Head First XML Layout on AndroidHead First XML Layout on Android
Head First XML Layout on Android
 
マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向マルチスクリーン対応と最近のアプリの傾向
マルチスクリーン対応と最近のアプリの傾向
 
Lecture Slides for List Views [Android ]
Lecture Slides for List Views [Android ]Lecture Slides for List Views [Android ]
Lecture Slides for List Views [Android ]
 
Android Layout 3分クッキング
Android Layout 3分クッキングAndroid Layout 3分クッキング
Android Layout 3分クッキング
 
Android Layout Cookbook Seminor
Android Layout Cookbook SeminorAndroid Layout Cookbook Seminor
Android Layout Cookbook Seminor
 
Fragment の利用パターン
Fragment の利用パターンFragment の利用パターン
Fragment の利用パターン
 
Android development - ListView & Adapter
Android development - ListView & AdapterAndroid development - ListView & Adapter
Android development - ListView & Adapter
 
ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]ListView and Custom ListView on Android Development [Thai]
ListView and Custom ListView on Android Development [Thai]
 
Android tutorial points
Android tutorial pointsAndroid tutorial points
Android tutorial points
 
Android ui adapter
Android ui adapterAndroid ui adapter
Android ui adapter
 
Android Application Fundamentals.
Android Application Fundamentals.Android Application Fundamentals.
Android Application Fundamentals.
 
Android sync adapter
Android sync adapterAndroid sync adapter
Android sync adapter
 
Session 2- day 3
Session 2- day 3Session 2- day 3
Session 2- day 3
 
Listview
ListviewListview
Listview
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)
 
File handling
File handlingFile handling
File handling
 
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
 

Similar to Adapter & ListView & ExpandalbeListView

A Tour of PostgreSQL
A Tour of PostgreSQLA Tour of PostgreSQL
A Tour of PostgreSQLEDB
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAmazon Web Services Japan
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumTomohiro Kumagai
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ朋哉 池田
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門Koichi Hamada
 
2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研dmcc2015
 

Similar to Adapter & ListView & ExpandalbeListView (9)

Android study part3
Android study part3Android study part3
Android study part3
 
A Tour of PostgreSQL
A Tour of PostgreSQLA Tour of PostgreSQL
A Tour of PostgreSQL
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon Athena
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研2016年第二回プレ卒研in山口研
2016年第二回プレ卒研in山口研
 
IgChart 入門編
IgChart 入門編IgChart 入門編
IgChart 入門編
 

More from Yuki Anzai

droidgirls Recyclerview
droidgirls Recyclerviewdroidgirls Recyclerview
droidgirls RecyclerviewYuki Anzai
 
Androidオールスターズ2016 yanzm
Androidオールスターズ2016 yanzmAndroidオールスターズ2016 yanzm
Androidオールスターズ2016 yanzmYuki Anzai
 
Whats's new in Android Studio at Google I/O extended in Fukuoka
Whats's new in Android Studio at Google I/O extended in FukuokaWhats's new in Android Studio at Google I/O extended in Fukuoka
Whats's new in Android Studio at Google I/O extended in FukuokaYuki Anzai
 
What's new in Android N at Google I/O extended in Fukuoka
What's new in Android N at Google I/O extended in FukuokaWhat's new in Android N at Google I/O extended in Fukuoka
What's new in Android N at Google I/O extended in FukuokaYuki Anzai
 
How to read "marble diagram"
How to read "marble diagram"How to read "marble diagram"
How to read "marble diagram"Yuki Anzai
 
Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Yuki Anzai
 
Master of RecyclerView
Master of RecyclerViewMaster of RecyclerView
Master of RecyclerViewYuki Anzai
 
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -Yuki Anzai
 
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」Yuki Anzai
 
ボクの開発スタイル
ボクの開発スタイルボクの開発スタイル
ボクの開発スタイルYuki Anzai
 
application Next Generation presented by android女子部
application Next Generation presented by android女子部application Next Generation presented by android女子部
application Next Generation presented by android女子部Yuki Anzai
 

More from Yuki Anzai (11)

droidgirls Recyclerview
droidgirls Recyclerviewdroidgirls Recyclerview
droidgirls Recyclerview
 
Androidオールスターズ2016 yanzm
Androidオールスターズ2016 yanzmAndroidオールスターズ2016 yanzm
Androidオールスターズ2016 yanzm
 
Whats's new in Android Studio at Google I/O extended in Fukuoka
Whats's new in Android Studio at Google I/O extended in FukuokaWhats's new in Android Studio at Google I/O extended in Fukuoka
Whats's new in Android Studio at Google I/O extended in Fukuoka
 
What's new in Android N at Google I/O extended in Fukuoka
What's new in Android N at Google I/O extended in FukuokaWhat's new in Android N at Google I/O extended in Fukuoka
What's new in Android N at Google I/O extended in Fukuoka
 
How to read "marble diagram"
How to read "marble diagram"How to read "marble diagram"
How to read "marble diagram"
 
Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016
 
Master of RecyclerView
Master of RecyclerViewMaster of RecyclerView
Master of RecyclerView
 
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
 
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
 
ボクの開発スタイル
ボクの開発スタイルボクの開発スタイル
ボクの開発スタイル
 
application Next Generation presented by android女子部
application Next Generation presented by android女子部application Next Generation presented by android女子部
application Next Generation presented by android女子部
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Adapter & ListView & ExpandalbeListView