展会信息港展会大全

当手机界面Rotation(按ctrl+F12,手机模拟器翻转)时,如何处理数据恢复及联系人处理
来源:互联网   发布日期:2015-10-02 16:06:11   浏览:2109次  

导读:1、这里讨论的主要是当手机界面Rotation(按ctrl+F12,手机模拟器翻转)时,如何处理数据恢复2、这里还讨论了,如何处理手机里面的联系人1.[代码]main.xml...

1、这里讨论的主要是当手机界面Rotation(按ctrl+F12,手机模拟器翻转)时,如何处理数据恢复

2、这里还讨论了,如何处理手机里面的联系人

1. [代码]main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"

Android:orientation="vertical" android:layout_width="fill_parent"

Android:layout_height="fill_parent">

<Button Android:id="@+id/pick" android:layout_width="fill_parent"

Android:layout_height="fill_parent" android:layout_weight="1"

Android:text="Pick" android:enabled="true" />

<Button Android:id="@+id/view" android:layout_width="fill_parent"

Android:layout_height="fill_parent" android:layout_weight="1"

Android:text="View" android:enabled="false" />

</LinearLayout>

2. [代码]RotationOneActivity.java

package yyl.rotation;

import Android.app.Activity;

import Android.content.Intent;

import Android.net.Uri;

import Android.os.Bundle;

import Android.view.View;

import Android.widget.Button;

public class RotationOneActivity extends Activity {

//变量定义

static final int PICK_REQUEST = 1337;//请求码

Button viewButton = null;//按钮

Uri contact = null;//Uri

//当手机界面Rotation(翻转)时,此方法重新加载www.linuxidc.com

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//根据Id得到控件对象

Button btn = (Button) findViewById(R.id.pick);

//给按钮绑定单击事件监听器

btn.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

//生成一个Intent对象,这个Intent传入两个参数

//这两个参数组合的作用是,单击才按钮,显示所有联系人,单击某一联系人,再返回到本Activity,传入选中的联系人的信息

Intent i = new Intent(Intent.ACTION_PICK, Uri

.parse("content://contacts/people"));

//启动,这里带来一个请求码

startActivityForResult(i, PICK_REQUEST);

System.out.println("pickButton onclick");

}

});

//根据Id得到控件对象

viewButton = (Button) findViewById(R.id.view);

//给按钮绑定单击事件监听器

viewButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

//启动新的Activity

//传入两个参数,这两个参数组合的作用是,显示contact中的联系人

startActivity(new Intent(Intent.ACTION_VIEW, contact));

System.out.println("viewButton onclick");

}

});

System.out.println("--> onCreate");

//判断是否需要做Activity恢复

restoreMe(savedInstanceState);

//设定按钮是否可用

viewButton.setEnabled(contact != null);

}

//从其他相关Activity返回到本Activity是,调用该方法

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

System.out.println("onActivityResult-->" + requestCode);

//判断请求码

if (requestCode == PICK_REQUEST) {

//判断结果码

if (resultCode == RESULT_OK) {

//调用Intent data的getData()方法,得到选中的联系人信息

contact = data.getData();

//设定按钮可用性

viewButton.setEnabled(true);

}

}

}

//当离开本Activity时,调用该方法,该方法的作用可以做一个数据保存

@Override

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

System.out.println("onSaveInstanceState");

if (contact != null) {

outState.putString("contact", contact.toString());

System.out.println("onSaveInstanceState-->" + contact.toString());

}

}

//恢复Activity:如果没有该方法,当界面Rotation(翻转)时,原本可用的按钮,变成不可以用,因为数据丢失无法恢复

private void restoreMe(Bundle state) {

System.out.println("restoreMe");

contact = null;

if (state != null) {

String contactUri = state.getString("contact");

if (contactUri != null) {

contact = Uri.parse(contactUri);

}

}

}

}

赞助本站

人工智能实验室

相关热词: Rotation 模拟器 翻转

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港