深入理解Activity

一、参数布局设置

会自动保存/data/data/包名/share_refers中

public class PreferenceActivityTest extends PreferenceActivity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		// 设置显示参数设置布局。
		addPreferencesFromResource(R.xml.preferences);
	}
}

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

<PreferenceScreen
	xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 设置系统铃声 -->
	<RingtonePreference android:ringtoneType="all"
		android:title="设置铃声" 
		android:summary="选择铃声(测试RingtonePreference)"
		android:showDefault="true" 
		android:key="ring_key"
		android:showSilent="true">
    </RingtonePreference>
    <PreferenceCategory android:title="个人信息设置zu">
    <!-- 通过输入框填写用户名 -->
	<EditTextPreference
	android:key="name"
	android:title="填写用户名"
	android:summary="填写您的用户名(测试EditTextPreference)"
	android:dialogTitle="您所使用的用户名为:"
	/>
	<!-- 通过列表框选择性别 -->
    <ListPreference
        android:key="gender"
        android:title="性别"
        android:summary="选择您的性别(测试ListPreference)"
        android:dialogTitle="ListPreference"
        android:entries="@array/gender_name_list"
        android:entryValues="@array/gender_value_list"
    />   	
</PreferenceCategory>
<PreferenceCategory android:title="系统功能设置组 ">
	<CheckBoxPreference
		android:key="autoSave"
		android:title="自动保存进度"
		android:summaryOn="自动保存: 开启"
		android:summaryOff="自动保存: 关闭"
		android:defaultValue="true"
	/>
</PreferenceCategory>		
</PreferenceScreen>

 

二、启动Activity

/获取启动当前Activity的上一个Intent
				Intent intent = new Intent(SecondActivity.this
					, StartActivity.class);
				//启动intent对应的Activity
				startActivity(intent);	
 

三、使用Bunder在不同Activity交换数据

发送数据

Person p = new Person(name.getText().toString()
					, passwd.getText().toString() , gender);
				//创建一个Bundle对象
				Bundle data = new Bundle();
				data.putSerializable("person", p);
				//创建一个Intent
				Intent intent = new Intent(BundleTest.this
					, ResultActivity.class);
				intent.putExtras(data);
				//启动intent对应的Activity
				startActivity(intent);
 

另一个接受数据

/获取启动当前Activity的上一个Intent
				Intent intent = new Intent(SecondActivity.this
					, StartActivity.class);
				//启动intent对应的Activity
				startActivity(intent);	
 

四、启动其他Activity返回结果

//重写该方法,该方法以回调的方式来获取指定Activity返回的结果
	@Override
	public void onActivityResult(int requestCode , int resultCode
		, Intent intent)
	{
		//当requestCode、resultCode同时为0,也就是处理特定的结果
		if (requestCode == 0
			&& resultCode == 0)
		{
			//取出Intent里的Extras数据
			Bundle data = intent.getExtras();
			//取出Bundle中的数据
			String resultCity = data.getString("city");
			//修改city文本框的内容
			city.setText(resultCity);
		}
	}

//获取启动该Activity之前的Activity对应的Intent

				Intent intent = getIntent();
				Bundle data = new Bundle();
				data.putString("city" ,cities[groupPosition][childPosition]);
				intent.putExtras(data);
				// 设置该SelectActivity的结果码,并设置结束之后退回的Activity
				SelectCityActivity.this.setResult(0 , intent);
				//结束SelectCityActivity。
				SelectCityActivity.this.finish();

五、Activity生命周期


 

猜你喜欢

转载自zhangfy068.iteye.com/blog/1730302