博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android笔记5——同一个Activity中Fragment的切换
阅读量:4683 次
发布时间:2019-06-09

本文共 4024 字,大约阅读时间需要 13 分钟。

今天来模拟一个注冊的界面过程:

点击“下一步”之后:

说明一下:界面总局仅仅在一个Activity里面。

1、首先定义RegistActivity

public class RegistActivity extends Activity {	private EditText userEditText;	private EditText verifyCodeText;	private Fragment verifyCodeFragment;	private Fragment checkCodeFragment;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_regist);		if (savedInstanceState == null) {			verifyCodeFragment = new VerifyCodeFragment();			getFragmentManager().beginTransaction()					.add(R.id.activity_regist, verifyCodeFragment).commit();		}	}}

activity_regist.xml文件:

这边通过java代码来增加Fragment。

2、fragment_verifycode.xml  获取验证码的界面

> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" tools:context="com.javen.activity.fragment.VerifyCodeFragment" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/message" android:textSize="@dimen/label_font_size" /> <EditText android:id="@+id/userEditText" android:layout_width="200dp" android:layout_height="wrap_content" android:inputType="text" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:textSize="@dimen/label_font_size" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" > <Button android:id="@+id/bnRegist" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:onClick="verifyCodeListener" android:text="@string/next" /> </LinearLayout> </LinearLayout>

2、输入验证码的界面:fragment_checkcode.xml

3、设置buttonListener,此处须要在Activity里面加入方法。

verifyCodeListener:

public void verifyCodeListener(View source) {		userEditText = (EditText) verifyCodeFragment.getView().findViewById(				R.id.userEditText);		String phoneNumber = userEditText.getText().toString().trim();		if (!Tools.matchPhone(phoneNumber)) {	//对手机号码验证的一个正則表達式方法			DialogUtil.showDialog(this, Constant.LOGIN_USER_NAME, false);			return;		}		this.getVerifyCode(phoneNumber);	//Http请求获取验证码		// 释放当前的fragment。又一次设置短信验证码输入的fragment		FragmentTransaction transaction = getFragmentManager()				.beginTransaction();		transaction.remove(verifyCodeFragment);		checkCodeFragment = new CheckCodeFragment();		transaction.add(R.id.activity_regist, checkCodeFragment).commit();	}
主要切换代码为:

	// 释放当前的fragment。又一次设置短信验证码输入的fragment	FragmentTransaction transaction = getFragmentManager()			.beginTransaction();	transaction.remove(verifyCodeFragment);	checkCodeFragment = new CheckCodeFragment();	transaction.add(R.id.activity_regist, checkCodeFragment).commit();
checkCodeListener:

public void checkCodeListener(View source) {		verifyCodeText = (EditText) checkCodeFragment.getView().findViewById(				R.id.verifyCodeText);		String verifyCode = verifyCodeText.getText().toString().trim();		Map
params = new HashMap
(); params.put("verifyCode", verifyCode); String url = UrlsUtil.formatUrl(UrlConstant.REGIST_CHECKCODE); String result = null; try { result = HttpsUtil.postRequest(url, params); } catch (Exception e) { e.printStackTrace(); DialogUtil.showDialog(this, Constant.SERVICE_ERRO, false); } if(result != null){ //TODO } }
说明一下:

这边主要说明的是Fragment切换的过程,至于Http请求,Util方法什么的,仅仅要了解这个功能就可以,代码事实上和普通工具类似的。

转载于:https://www.cnblogs.com/claireyuancy/p/6815691.html

你可能感兴趣的文章
Backbone.js源码分析(珍藏版)
查看>>
完全背包问题
查看>>
滴水穿石-09多线程
查看>>
[树形dp] Jzoj P1162 贪吃的九头龙
查看>>
Jquery 相关笔记
查看>>
利用表单发送邮件
查看>>
计算机一族必喝的四杯茶
查看>>
linux 下的ssh免密登陆设置
查看>>
【Hibernate 7】浅谈Hibernate的缓存机制
查看>>
润乾报表 动态控制文本的显示
查看>>
[oracle] 如何使用myBatis在数据库中插入数据并返回主键
查看>>
PHP echo 和 print 语句
查看>>
第一讲 一个简单的Qt程序分析
查看>>
Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置
查看>>
poj 1979 Red and Black(dfs)
查看>>
【.Net基础03】HttpWebRequest模拟浏览器登陆
查看>>
UML-画类图与交互图的顺序
查看>>
杭电1060
查看>>
webdriver test1
查看>>
RFC端口号定义
查看>>