先给大家展示效果图:
1.新建testfragmen继承fragment
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
public class testfragment extends fragment { private static final string tag = "testfragment" ; private string hello; // = "hello android"; private string defaulthello = "default value" ; private map<string, object= "" > maplist; static testfragment newinstance(string s, map<string, object= "" > map) { testfragment newfragment = new testfragment(); // bundle bundle = new bundle(); // bundle.putstring("hello", s); // newfragment.setarguments(bundle); final serializablemap mymap= new serializablemap(); mymap.setmap(map); bundle bundle = new bundle(); bundle.putserializable( "map" , mymap); newfragment.setarguments(bundle); return newfragment; } @override public void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); log.d(tag, "testfragment-----oncreate" ); bundle args = getarguments(); // hello = args != null ? args.getstring("hello") : defaulthello; bundle bundle = getarguments(); serializablemap serializablemap = (serializablemap) bundle.get( "map" ); maplist =serializablemap.getmap(); } @override public view oncreateview(layoutinflater inflater, viewgroup container,bundle savedinstancestate) { log.d(tag, "testfragment-----oncreateview" ); view view = inflater.inflate(r.layout.lay1, container, false ); // textview viewhello = (textview) view.findviewbyid(r.id.tv_hello); //viewhello.settext(maplist.get("userid")+"time"); listview lv = (listview) view.findviewbyid(r.id.listview3); contactadapter hc = new contactadapter(getactivity().getapplicationcontext(),getcontact()); lv.setadapter(hc); lv.setcachecolorhint( 0 ); return view; } private arraylist<contact> getcontact(){ arraylist<contact> hclist = new arraylist<contact>(); for ( int i= 0 ;i< 10 ;i++) { contact c0 = new contact(); c0.settxpath(r.drawable.more_game+ "" ); c0.setname(maplist.get( "userid" )+ " 年龄:" +maplist.get( "age" )); hclist.add(c0); } return hclist; } @override public void ondestroy() { super .ondestroy(); log.d(tag, "testfragment-----ondestroy" ); } } </contact></contact></contact></string,></string,> |
2.myfragmentpageradapter继承fragmentpageradapter
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class myfragmentpageradapter extends fragmentpageradapter { private arraylist<fragment> fragmentslist; public myfragmentpageradapter(fragmentmanager fm) { super (fm); } public myfragmentpageradapter(fragmentmanager fm, arraylist<fragment> fragments) { super (fm); this .fragmentslist = fragments; } @override public int getcount() { return fragmentslist.size(); } @override public fragment getitem( int arg0) { return fragmentslist.get(arg0); } @override public int getitemposition(object object) { return super .getitemposition(object); } } </fragment></fragment> |
3.mainactivity 要继承fragmentactivity
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
public class mainactivity extends fragmentactivity { private static final string tag = "mainactivity" ; private viewpager mpager; private arraylist<fragment> fragmentslist; private imageview ivbottomline; private textview tvtabactivity, tvtabgroups, tvtabfriends, tvtabchat; private int currindex = 0 ; private int bottomlinewidth; private int offset = 0 ; private int position_one; private int position_two; private int position_three; private resources resources; @override public void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); requestwindowfeature(window.feature_no_title); setcontentview(r.layout.main); resources = getresources(); initwidth(); inittextview(); initviewpager(); } private void inittextview() { tvtabactivity = (textview) findviewbyid(r.id.tv_tab_activity); tvtabgroups = (textview) findviewbyid(r.id.tv_tab_groups); tvtabfriends = (textview) findviewbyid(r.id.tv_tab_friends); tvtabchat = (textview) findviewbyid(r.id.tv_tab_chat); tvtabactivity.setonclicklistener( new myonclicklistener( 0 )); tvtabgroups.setonclicklistener( new myonclicklistener( 1 )); tvtabfriends.setonclicklistener( new myonclicklistener( 2 )); tvtabchat.setonclicklistener( new myonclicklistener( 3 )); } private void initviewpager() { mpager = (viewpager) findviewbyid(r.id.vpager); fragmentslist = new arraylist<fragment>(); map<string, object= "" > parammap = new hashmap<string, object= "" >(); parammap.put( "userid" , "小洪" ); parammap.put( "age" , 23 ); map<string, object= "" > parammap2 = new hashmap<string, object= "" >(); parammap2.put( "userid" , "vatty" ); parammap2.put( "age" , 24 ); map<string, object= "" > parammap3 = new hashmap<string, object= "" >(); parammap3.put( "userid" , "小明" ); parammap3.put( "age" , 25 ); map<string, object= "" > parammap4 = new hashmap<string, object= "" >(); parammap4.put( "userid" , "hongshengpeng.com" ); parammap4.put( "age" , 26 ); fragment activityfragment = testfragment.newinstance( "hello activity." ,parammap); fragment groupfragment = testfragment.newinstance( "hello group." ,parammap2); fragment friendsfragment=testfragment.newinstance( "hello friends." ,parammap3); fragment chatfragment=testfragment.newinstance( "hello chat." ,parammap4); fragmentslist.add(activityfragment); fragmentslist.add(groupfragment); fragmentslist.add(friendsfragment); fragmentslist.add(chatfragment); mpager.setadapter( new myfragmentpageradapter(getsupportfragmentmanager(), fragmentslist)); mpager.setcurrentitem( 0 ); mpager.setonpagechangelistener( new myonpagechangelistener()); } private void initwidth() { ivbottomline = (imageview) findviewbyid(r.id.iv_bottom_line); bottomlinewidth = ivbottomline.getlayoutparams().width; log.d(tag, "cursor imageview width=" + bottomlinewidth); displaymetrics dm = new displaymetrics(); getwindowmanager().getdefaultdisplay().getmetrics(dm); int screenw = dm.widthpixels; offset = ( int ) ((screenw / 4.0 - bottomlinewidth) / 2 ); log.i( "mainactivity" , "offset=" + offset); position_one = ( int ) (screenw / 4.0 ); position_two = position_one * 2 ; position_three = position_one * 3 ; } public class myonclicklistener implements view.onclicklistener { private int index = 0 ; public myonclicklistener( int i) { index = i; } @override public void onclick(view v) { mpager.setcurrentitem(index); } }; public class myonpagechangelistener implements onpagechangelistener { @override public void onpageselected( int arg0) { animation animation = null ; switch (arg0) { case 0 : if (currindex == 1 ) { animation = new translateanimation(position_one, 0 , 0 , 0 ); tvtabgroups.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 2 ) { animation = new translateanimation(position_two, 0 , 0 , 0 ); tvtabfriends.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 3 ) { animation = new translateanimation(position_three, 0 , 0 , 0 ); tvtabchat.settextcolor(resources.getcolor(r.color.lightwhite)); } tvtabactivity.settextcolor(resources.getcolor(r.color.white)); break ; case 1 : if (currindex == 0 ) { animation = new translateanimation( 0 , position_one, 0 , 0 ); tvtabactivity.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 2 ) { animation = new translateanimation(position_two, position_one, 0 , 0 ); tvtabfriends.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 3 ) { animation = new translateanimation(position_three, position_one, 0 , 0 ); tvtabchat.settextcolor(resources.getcolor(r.color.lightwhite)); } tvtabgroups.settextcolor(resources.getcolor(r.color.white)); break ; case 2 : if (currindex == 0 ) { animation = new translateanimation( 0 , position_two, 0 , 0 ); tvtabactivity.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 1 ) { animation = new translateanimation(position_one, position_two, 0 , 0 ); tvtabgroups.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 3 ) { animation = new translateanimation(position_three, position_two, 0 , 0 ); tvtabchat.settextcolor(resources.getcolor(r.color.lightwhite)); } tvtabfriends.settextcolor(resources.getcolor(r.color.white)); break ; case 3 : if (currindex == 0 ) { animation = new translateanimation( 0 , position_three, 0 , 0 ); tvtabactivity.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 1 ) { animation = new translateanimation(position_one, position_three, 0 , 0 ); tvtabgroups.settextcolor(resources.getcolor(r.color.lightwhite)); } else if (currindex == 2 ) { animation = new translateanimation(position_two, position_three, 0 , 0 ); tvtabfriends.settextcolor(resources.getcolor(r.color.lightwhite)); } tvtabchat.settextcolor(resources.getcolor(r.color.white)); break ; } currindex = arg0; animation.setfillafter( true ); animation.setduration( 300 ); ivbottomline.startanimation(animation); } @override public void onpagescrolled( int arg0, float arg1, int arg2) { } @override public void onpagescrollstatechanged( int arg0) { } } }</string,></string,></string,></string,></string,></string,></string,></string,></fragment></fragment> |
4.分别新建lay1.xml、 lay2.xml 、lay3.xml
lay1.xml
1
|
2
3
4
5
6
|
<!--?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:background= "#fff" android:orientation= "vertical" > <textview android:id= "@+id/tv_hello" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "textview" android:visibility= "gone" > <listview android:id= "@+id/listview3" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:cachecolorhint= "@android:color/transparent" android:divider= "@drawable/reader_item_divider" android:listselector= "@android:color/transparent" > </listview> </textview></linearlayout> |
lay2.xml
1
|
2
3
|
<!--?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= "#ff8684" > </linearlayout> |
lay3.xml与lay2.xml类型
1
|
2
3
|
<!--?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= "#1586ff" > </linearlayout> |
main.xml
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!--?xml version= "1.0" encoding= "utf-8" ?--> <linearlayout xmlns:android= " http://schemas.android.com/apk/res/android " xmlns:umadsdk= " http://schemas.android.com/apk/res/com.lovebus " android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:orientation= "vertical" > <linearlayout android:layout_width= "match_parent" android:layout_height= "wrap_content" android:orientation= "vertical" > <linearlayout android:layout_width= "match_parent" android:layout_height= "48dip" android:background= "@drawable/android_title_bg" > <imageview android:id= "@+id/imageview1" android:layout_width= "36dip" android:layout_height= "36dip" android:layout_gravity= "center_vertical" android:layout_marginleft= "10dip" android:src= "@drawable/more_game" > <textview android:id= "@+id/textview1" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_gravity= "center_vertical" android:layout_marginleft= "10dip" android:text= "乐够go" android:textappearance= "?android:attr/textappearancelarge" > <imageview android:id= "@+id/imageview2" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_gravity= "center_vertical" android:paddingleft= "10dip" android:src= "@drawable/status_online" android:visibility= "gone" > </imageview></textview></imageview></linearlayout> <linearlayout android:id= "@+id/linearlayout1" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:paddingbottom= "5dip" android:paddingtop= "10dip" android:background= "@color/coral" > <textview android:id= "@+id/tv_tab_activity" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:layout_weight= "1.0" android:gravity= "center" android:text= "@string/tab_1" android:textcolor= "@color/white" android:textsize= "18sp" > <textview android:id= "@+id/tv_tab_groups" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:layout_weight= "1.0" android:gravity= "center" android:text= "@string/tab_2" android:textcolor= "@color/lightwhite" android:textsize= "18sp" > <textview android:id= "@+id/tv_tab_friends" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:layout_weight= "1.0" android:gravity= "center" android:text= "@string/tab_3" android:textcolor= "@color/lightwhite" android:textsize= "18sp" > <textview android:id= "@+id/tv_tab_chat" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:layout_weight= "1.0" android:gravity= "center" android:text= "@string/tab_4" android:textcolor= "@color/lightwhite" android:textsize= "18sp" > </textview></textview></textview></textview></linearlayout> <linearlayout android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_gravity= "bottom" android:orientation= "vertical" android:paddingbottom= "3dip" > <imageview android:id= "@+id/iv_bottom_line" android:layout_width= "40dip" android:layout_height= "2dip" android:layout_marginleft= "20dip" android:scaletype= "matrix" android:src= "#fff" > </imageview></linearlayout> </linearlayout> </android.support.v4.view.viewpager></linearlayout> |
ps:viewpager + fragment实现滑动标签页
viewpager 结合fragment实现一个activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应。
activity_main.xml
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
<?xml version= "1.0" encoding= "utf-8" ?> <linearlayout xmlns:android= " http://schemas.android.com/apk/res/android " xmlns:tools= " http://schemas.android.com/tools " android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" > <linearlayout android:layout_width= "match_parent" android:layout_height= "wrap_content" android:orientation= "horizontal" > <textview android:id= "@+id/tv_guid1" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_weight= "1.0" android:gravity= "center" android:text= "特性1" android:textsize= "18sp" /> <textview android:id= "@+id/tv_guid2" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_weight= "1.0" android:gravity= "center" android:text= "特性2" android:textsize= "18sp" /> <textview android:id= "@+id/tv_guid3" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_weight= "1.0" android:gravity= "center" android:text= "特性3 " android:textsize= "18sp" /> <textview android:id= "@+id/tv_guid4" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_weight= "1.0" android:gravity= "center" android:text= "特性4" android:textsize= "18sp" /> </linearlayout> <imageview android:id= "@+id/cursor" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:scaletype= "matrix" android:src= "@drawable/cursor" /> <android.support.v4.view.viewpager android:id= "@+id/viewpager" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:flipinterval= "30" android:persistentdrawingcache= "animation" /> </linearlayout> |
mainactivity.java
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
package com.example.viewpagernfragment; import java.util.arraylist; import android.graphics.bitmapfactory; import android.graphics.matrix; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; import android.support.v4.view.viewpager.onpagechangelistener; import android.util.displaymetrics; import android.view.menu; import android.view.view; import android.view.animation.animation; import android.view.animation.translateanimation; import android.widget.imageview; import android.widget.textview; import android.widget.toast; public class mainactivity extends fragmentactivity { private viewpager mpager; private arraylist<fragment> fragmentlist; private imageview image; private textview view1, view2, view3, view4; private int currindex; //当前页卡编号 private int bmpw; //横线图片宽度 private int offset; //图片移动的偏移量 @override protected void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); setcontentview(r.layout.activity_main); inittextview(); initimage(); initviewpager(); } /* * 初始化标签名 */ public void inittextview(){ view1 = (textview)findviewbyid(r.id.tv_guid1); view2 = (textview)findviewbyid(r.id.tv_guid2); view3 = (textview)findviewbyid(r.id.tv_guid3); view4 = (textview)findviewbyid(r.id.tv_guid4); view1.setonclicklistener(new txlistener(0)); view2.setonclicklistener(new txlistener(1)); view3.setonclicklistener(new txlistener(2)); view4.setonclicklistener(new txlistener(3)); } public class txlistener implements view.onclicklistener{ private int index=0; public txlistener(int i) { index =i; } @override public void onclick(view v) { // todo auto-generated method stub mpager.setcurrentitem(index); } } /* * 初始化图片的位移像素 */ public void initimage(){ image = (imageview)findviewbyid(r.id.cursor); bmpw = bitmapfactory.decoderesource(getresources(), r.drawable.cursor).getwidth(); displaymetrics dm = new displaymetrics(); getwindowmanager().getdefaultdisplay().getmetrics(dm); int screenw = dm.widthpixels; offset = (screenw/4 - bmpw)/2; //imgageview设置平移,使下划线平移到初始位置(平移一个offset) matrix matrix = new matrix(); matrix.posttranslate(offset, 0); image.setimagematrix(matrix); } /* * 初始化viewpager */ public void initviewpager(){ mpager = (viewpager)findviewbyid(r.id.viewpager); fragmentlist = new arraylist<fragment>(); fragment btfragment= new buttonfragment(); fragment secondfragment = testfragment.newinstance( "this is second fragment" ); fragment thirdfragment = testfragment.newinstance( "this is third fragment" ); fragment fourthfragment = testfragment.newinstance( "this is fourth fragment" ); fragmentlist.add(btfragment); fragmentlist.add(secondfragment); fragmentlist.add(thirdfragment); fragmentlist.add(fourthfragment); //给viewpager设置适配器 mpager.setadapter( new myfragmentpageradapter(getsupportfragmentmanager(), fragmentlist)); mpager.setcurrentitem( 0 ); //设置当前显示标签页为第一页 mpager.setonpagechangelistener( new myonpagechangelistener()); //页面变化时的监听器 } public class myonpagechangelistener implements onpagechangelistener{ private int one = offset * 2 +bmpw; //两个相邻页面的偏移量 @override public void onpagescrolled( int arg0, float arg1, int arg2) { // todo auto-generated method stub } @override public void onpagescrollstatechanged( int arg0) { // todo auto-generated method stub } @override public void onpageselected( int arg0) { // todo auto-generated method stub animation animation = new translateanimation(currindex*one,arg0*one, 0 , 0 ); //平移动画 currindex = arg0; animation.setfillafter( true ); //动画终止时停留在最后一帧,不然会回到没有执行前的状态 animation.setduration( 200 ); //动画持续时间0.2秒 image.startanimation(animation); //是用imageview来显示动画的 int i = currindex + 1 ; toast.maketext(mainactivity. this , "您选择了第" +i+ "个页卡" , toast.length_short).show(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true ; } } |
谷歌官方认为,viewpager应该和fragment一起使用时,此时viewpager的适配器是fragmentpageradapter,当你实现一个fragmentpageradapter,你必须至少覆盖以下方法:
getcount()
getitem()
如果viewpager没有和fragment一起,viewpager的适配器是pageradapter,它是基类提供适配器来填充页面viewpager内部,当你实现一个pageradapter,你必须至少覆盖以下方法:
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
instantiateitem(viewgroup, int ) destroyitem(viewgroup, int , object) getcount() isviewfromobject(view, object) [java] view plaincopy package com.example.viewpagernfragment; import java.util.arraylist; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; public class myfragmentpageradapter extends fragmentpageradapter{ arraylist<fragment> list; public myfragmentpageradapter(fragmentmanager fm,arraylist<fragment> list) { super (fm); this .list = list; } @override public int getcount() { return list.size(); } @override public fragment getitem( int arg0) { return list.get(arg0); } } [java] view plaincopy package com.example.viewpagernfragment; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.button; import android.widget.toast; public class buttonfragment extends fragment{ button mybutton; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.guide_1, container, false ); //关联布局文件 mybutton = (button)rootview.findviewbyid(r.id.mybutton); //根据rootview找到button //设置按键监听事件 mybutton.setonclicklistener( new view.onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub toast.maketext(buttonfragment. this .getactivity(), "button is click!" , toast.length_short).show(); } }); return rootview; } } [java] view plaincopy package com.example.viewpagernfragment; import android.os.bundle; import android.support.v4.app.fragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview; public class testfragment extends fragment { private static final string tag = "testfragment" ; private string hello; // = "hello android"; private string defaulthello = "default value" ; static testfragment newinstance(string s) { testfragment newfragment = new testfragment(); bundle bundle = new bundle(); bundle.putstring( "hello" , s); newfragment.setarguments(bundle); //bundle还可以在每个标签里传送数据 return newfragment; } @override public view oncreateview(layoutinflater inflater, viewgroup container,bundle savedinstancestate) { log.d(tag, "testfragment-----oncreateview" ); bundle args = getarguments(); hello = args != null ? args.getstring( "hello" ) : defaulthello; view view = inflater.inflate(r.layout.guide_2, container, false ); textview viewhello = (textview) view.findviewbyid(r.id.tv); viewhello.settext(hello); return view; } } <?xml version= "1.0" encoding= "utf-8" ?> <relativelayout xmlns:android= " http://schemas.android.com/apk/res/android " android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:background= "#ff0000ff" > <button android:id= "@+id/mybutton" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "hit me" android:gravity= "center" /> </relativelayout> [html] view plaincopy <?xml version= "1.0" encoding= "utf-8" ?> <relativelayout xmlns:android= " http://schemas.android.com/apk/res/android " android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:orientation= "vertical" android:background= "#158684" > <textview android:id= "@+id/tv" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "textview" /> </relativelayout> |