先给大家展示效果图:
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>
|