Android 学习记录-零散知识点
来源:互联网 发布:如何下载excel2007软件 编辑:程序博客网 时间:2024/05/17 09:14
同一个应用程序中的Activity切换通常一个应用程序中需要多个UI 屏幕,也就需要多个Activity 类,并且在这些 Activity 之间进行切换,这种切换就是通过 Intent 机制来实现的。
例如
Intent intent = new Intent(getActivity(), DetailActivity.class);//intent.putExtra(Intent.EXTRA_TEXT, forecast);//添加附带信息 startActivity(intent);//开启Activity
在DetailActivity.class里面接受intent传来的附加信息
例如
Intent intent = getActivity().getIntent();if(intent != null && intent.hasExtra(Intent.EXTRA_TEXT)){ String forecast = intent.getStringExtra(Intent.EXTRA_TEXT); ((TextView)rootView.findViewById(R.id.forecastDetail)).setText(forecast);//something to do
--------------------------------------------------------------------------------------------------------------------------
开启其它应用的intent,系统如何知道其它应用可以处理此intent
比如地图应用
在它的manifest.xml里面 activity 有个 intent筛选器
<intent-filter >
<action:name ="android.intent.action.VIEW"/>
<data android:scheme="geo"/>
</intent-filter>
---------------------------------------------------------------------------------------------------------------------
读取默认配置信息
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
position = prefs.getString(getString(R.string.pref_location_key),getString(R.string.pref_location_default));
weatherTask.execute(position);
----------------------------------------------------------------------------------------------------------------------
对于PreferenceActivity中addPreferencesFromResource(R.xml.pref_general)函数的弃用
public static class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); } }然后将其添加到Activity
public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); }}在安卓布局文件中添加控件<Fragment />,系统定义的此Fragment的id为android.R.id.content,根视图
---------------------------------------------------------------------------------------------------------------------
随后从fragment添加到Option菜单的任何项,都会被追加到现有菜单项的后面.当一个菜单项被选择, fragment也会接收到对onOptionsItemSelected() 的回调.就是说fragment中的菜单项包含了活动中定义的菜单。
public DetailFragment() { setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.detailfragment,menu); MenuItem menuItem = menu.findItem(R.id.action_share); ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem); if(mShareActionProvider != null){ mShareActionProvider.setShareIntent(createShareForecastIntent()); }else{ Log.e(LOG_TAG,"share action provider is null!"); } } //FLAG_ACTIVITY_NEW_DOCUMENT instead of FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET private Intent createShareForecastIntent(){ Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT,mForecastStr+FORECAST_SHARE_TAG); return shareIntent; }菜单配置文件
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.android.sunshine.app.DetailActivity"> <item android:id="@+id/action_share" android:title="@string/action_share" app:showAsAction="always" app:actionProviderClass= "android.support.v7.widget.ShareActionProvider" /></menu>
- Android 学习记录-零散知识点
- Java零散知识点学习记录
- Object c学习知识点零散记录
- Android 开发中零散知识点记录
- 零散知识点记录
- maven零散知识点记录
- 零散知识点记录
- java零散知识点记录
- Android学习中一些零散的知识点
- android 零散知识点
- Android 零散知识点
- android零散知识点小记
- storyboard相关知识点-零散记录
- 数据库相关零散知识点记录
- linux 学习零散记录
- 深度学习知识点(零散)
- Android 开发中的零散知识点
- ios中UI零散知识点记录
- CentOS安装软件<一> MYSQL
- c++(1)
- BruteForceMatcher无法找到
- 什么是P问题、NP问题和NPC问题
- 关于根据oracle字段长度更新字段值
- Android 学习记录-零散知识点
- 【模拟】HDU4509湫湫系列故事——减肥记II
- position、opacity与z-index的组合
- activiti自定义流程之整合(五):启动流程时获取自定义表单
- android 调用远程service时报java.lang.SecurityException: Binder invocation to an incorrect interface异常
- Linux用户管理:addgroup、adduser、usermod
- Fragment页面的切换
- Java中关于异常的一些问题(一)
- Java 线程池原理解析(一)