- 浏览: 693096 次
- 性别:
- 来自: 苏州
最新评论
-
usedlie:
if (flag) { matrix.set(matrix ...
android view的缩放平移简单实现 -
jin290:
简单 快捷 非常棒 可以直接用
android 应用实现微信好友或朋友圈分享 -
貌似掉线:
0是朋友1是朋友圈
android 应用实现微信好友或朋友圈分享 -
zhangzhanlei:
[color=red][/color]
android 应用实现微信好友或朋友圈分享 -
shizhangliao:
android适配多分辨率的小技巧
package com.example.googleandroiddemo; // //import android.app.Activity; //import android.os.Bundle; //import android.support.v4.app.FragmentTransaction; //import android.support.v4.app.ListFragment; //import android.view.View; //import android.widget.ArrayAdapter; //import android.widget.ListView; // //public class MainActivity extends Activity { // @Override // protected void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // // setContentView(R.layout.fragment_layout); // } // // // public static class TitlesFragment extends ListFragment { // public TitlesFragment() { // super(); // // TODO Auto-generated constructor stub // } // // public static TitlesFragment newInstance(int index) { // TitlesFragment f = new TitlesFragment(); // // // Supply index input as an argument. //// Bundle args = new Bundle(); //// args.putInt("index", index); //// f.setArguments(args); // // return f; // } // // boolean mDualPane; // int mCurCheckPosition = 0; // String str[] = { "321321", "312312", "312312", "321321312","eqweqwewqeqw","eqwewqeqwwe","eqweqweqwerewre","r4r4r4t","eqwewqe" }; // @Override // public void onActivityCreated(Bundle savedInstanceState) { // super.onActivityCreated(savedInstanceState); // // // Populate list with our static array of titles. // setListAdapter(new ArrayAdapter<String>(getActivity(), // android.R.layout.simple_list_item_activated_1, // str)); // // // Check to see if we have a frame in which to embed the details // // fragment directly in the containing UI. // View detailsFrame = getActivity().findViewById(R.id.details); // mDualPane = detailsFrame != null // && detailsFrame.getVisibility() == View.VISIBLE; // // if (savedInstanceState != null) { // // Restore last state for checked position. // mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); // } // // if (mDualPane) { // // In dual-pane mode, the list view highlights the selected item. // getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); // // Make sure our UI is in the correct state. // showDetails(mCurCheckPosition); // } // } // // @Override // public void onSaveInstanceState(Bundle outState) { // super.onSaveInstanceState(outState); // outState.putInt("curChoice", mCurCheckPosition); // } // // @Override // public void onListItemClick(ListView l, View v, int position, long id) { // showDetails(position); // } // // /** // * Helper function to show the details of a selected item, either by // * displaying a fragment in-place in the current UI, or starting a whole new // * activity in which it is displayed. // */ // void showDetails(int index) { // mCurCheckPosition = index; // // if (mDualPane) { // // We can display everything in-place with fragments, so update // // the list to highlight the selected item and show the data. // getListView().setItemChecked(index, true); // // // Check what fragment is currently shown, replace if needed. // DetailsFragment details = (DetailsFragment) getFragmentManager() // .findFragmentById(R.id.details); // if (details == null || details.getShownIndex() != index) { // // Make new fragment to show this selection. // details = DetailsFragment.newInstance(index); // // // Execute a transaction, replacing any existing fragment // // with this one inside the frame. // FragmentTransaction ft = getFragmentManager() // .beginTransaction(); // ft.replace(R.id.details, details); // ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); // ft.commit(); // } // // } else { // // Otherwise we need to launch a new activity to display // // the dialog fragment with selected text. // // Intent intent = new Intent(); // // intent.setClass(getActivity(), DetailsActivity.class); // // intent.putExtra("index", index); // // startActivity(intent); // } // } // } //} import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.app.FragmentTransaction; import android.app.ListFragment; import android.os.Bundle; //import android.support.v4.app.Fragment; //import android.support.v4.app.FragmentTransaction; //import android.support.v4.app.ListFragment; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.ScrollView; import android.widget.TextView; public class MainActivity extends Activity { public static String[] array = { "text1,", "text2", "text3", "text4", "text5,", "text6", "text7", "text8" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_layout); } public static class TitlesFragment extends ListFragment { boolean mDualPane; int mCurCheckPosition = 0; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); System.out.println("Fragment-->onCreate"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub System.out.println("Fragment-->onCreateView"); return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onPause() { // TODO Auto-generated method stub super.onPause(); System.out.println("Fragment-->onPause"); } @Override public void onStop() { // TODO Auto-generated method stub super.onStop(); System.out.println("Fragment-->onStop"); } @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); System.out.println("Fragment-->onAttach"); } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); System.out.println("Fragment-->onStart"); } @Override public void onResume() { // TODO Auto-generated method stub super.onResume(); System.out.println("Fragment-->onResume"); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); System.out.println("Fragment-->onDestroy"); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); System.out.println("Fragment-->onActivityCreted"); setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, array)); View detailsFrame = getActivity().findViewById(R.id.details); mDualPane = detailsFrame != null && detailsFrame.getVisibility() == View.VISIBLE; if (savedInstanceState != null) { mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); //从保存的状态中取出数据 } if (mDualPane) { getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); showDetails(mCurCheckPosition); } } @Override public void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); outState.putInt("curChoice", mCurCheckPosition);//保存当前的下标 } @Override public void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); showDetails(position); } void showDetails(int index) { mCurCheckPosition = index; if (mDualPane) { getListView().setItemChecked(index, true); DetailsFragment details = (DetailsFragment) getFragmentManager() .findFragmentById(R.id.details); if (details == null || details.getShownIndex() != index) { details = DetailsFragment.newInstance(mCurCheckPosition); //得到一个fragment 事务(类似sqlite的操作) FragmentTransaction ft = getFragmentManager() .beginTransaction(); ft.replace(R.id.details, details);//将得到的fragment 替换当前的viewGroup内容,add则不替换会依次累加 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//设置动画效果 ft.commit();//提交 } } else { new AlertDialog.Builder(getActivity()).setTitle( android.R.string.dialog_alert_title).setMessage( array[index]).setPositiveButton(android.R.string.ok, null).show(); } } } /** * 作为界面的一部分,为fragment 提供一个layout * @author terry * */ public static class DetailsFragment extends Fragment { public static DetailsFragment newInstance(int index) { DetailsFragment details = new DetailsFragment(); Bundle args = new Bundle(); args.putInt("index", index); details.setArguments(args); return details; } public int getShownIndex() { return getArguments().getInt("index", 0); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub if (container == null) return null; ScrollView scroller = new ScrollView(getActivity()); TextView text = new TextView(getActivity()); int padding = (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 4, getActivity() .getResources().getDisplayMetrics()); text.setPadding(padding, padding, padding, padding); scroller.addView(text); text.setText(array[getShownIndex()]); return scroller; } } }
xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <fragment class="com.example.googleandroiddemo.MainActivity$TitlesFragment" android:id="@+id/titles" android:layout_weight="1" android:layout_width="0px" android:layout_height="match_parent" /> <FrameLayout android:id="@+id/details" android:layout_weight="1" android:layout_width="0px" android:layout_height="match_parent" android:background="?android:attr/detailsElementBackground" ></FrameLayout> </LinearLayout>
发表评论
-
jar包混淆
2016-09-18 16:46 1125开发过程中需要把相关功能打成jar包供别人调用,如果不混淆的话 ... -
项目从eclipse移植到studio中遇到的问题整理
2016-09-13 17:42 1165概念 eclipse workspace ---> ... -
ViewGroup&View&Activity onInterceptTouchEvent&dispatchTouchEvent&onTouch整理
2016-08-03 22:26 672一直对这块的知识一知 ... -
仿京东android客户端收件地址选择
2016-07-12 18:07 6511纯手写,可能有些问题,功能已实现 activity pac ... -
FragmentActivity中资源被回收,导致页面fragment错乱的问题
2016-06-07 13:59 3859开发过程中,页面使用fragmentactivity,可能会遇 ... -
android 通过eclipse mat来监测应用内存
2016-02-03 13:02 011dasdasdas -
【转】详解ViewPager调用FragmentPagerAdapter.notifyDataSetChanged()不能更新Fragment
2016-01-30 13:27 2050转载自 http://www.blog4app.com/?p= ... -
startActivityForResult常用使用方式
2015-04-24 11:58 1713示例 初始Activity启动目标activity,并带上了请 ... -
在android4.4以上版本 第三方应用处理短信的疑惑
2015-03-31 16:14 1030最近有个处理android手机短信的需求,需要删除本地某指定短 ... -
Beacon的入门相关知识整理(关于android开发)
2014-10-27 16:53 0To do.... -
[转]常用Github项目类库
2014-09-18 09:29 1793【转自】http://blog.csdn.net/jabony ... -
android适配多分辨率的小技巧
2014-09-05 18:10 2815android多分辨率适配其实是老生常谈的话了,今天再拿出来炒 ... -
android通过自定义schame和host来启动app
2014-08-15 15:02 2168很多时候,我们可以看到在web页面中点击链接,可以直接启动ap ... -
基础知识整理
2014-08-08 17:50 0onTouch(MotionEvent event) eve ... -
android view的缩放平移简单实现
2014-07-22 16:20 16356参考了下网上一些实现 主要是通过matrix实现的 用到的 ... -
android 应用实现微信好友或朋友圈分享
2014-07-18 16:44 60439官方的文档连接:https://open.weixin.qq. ... -
android 自定义view支持gif格式播放
2014-07-16 18:38 4162前段时间做了个项目,有播放gif的需求, 而android展示 ... -
android中自定义attr,以及style杂谈
2014-06-05 18:12 13754attr 属性 style 样式 二者都是在res/value ... -
ViewGroup中的onInterceptTouchEvent和onTouchEvent调用时序
2014-05-20 11:20 1161最近在做android类似slidemenu项目,遇到了scr ... -
获取手机网络状态的代码
2014-03-27 16:45 1295之前网上有人使用方法判断手机网络状态代码如下: Co ...
相关推荐
关于fragment简单的一个demo 第一次上传 希望有帮助关于fragment简单的一个demo 第一次上传 希望有帮助关于fragment简单的一个demo 第一次上传 希望有帮助关于fragment简单的一个demo 第一次上传 希望有帮助
在这个"Android简单的tab fragment的demo"中,我们将深入探讨如何将Fragment与Tab布局结合使用,创建一个功能完善的用户交互界面。 1. **Fragment的使用**: Fragment是Android 3.0(API级别11)引入的,目的是...
本教程将通过一个简单的"fragment互相切换"的Demo来详细介绍如何实现这一功能。 首先,我们需要理解Fragment的基本概念。Fragment可以看作是Activity的一部分,它有自己的生命周期,可以在Activity中添加、移除或...
这是一个短小而精湛的Fragment的Demo。代码简单易于学习,内附Fragment的生命周期日志输出。在DDMS中查看tag为xujian的日志,即可清除的看到Fragment的各个生命周期。专程为初学者或者不了解Fragment的朋友准备的,...
本示例"android fragment超简单使用demo"专注于Fragment的基础使用,旨在帮助开发者快速理解并掌握Fragment的核心概念。 首先,Fragment并不是独立的Activity,而是作为Activity的一部分存在,它可以嵌入到Activity...
Fragment表现Activity中用户界面的一个行为或者是一部分。你可以在一个单独的activity上把多个fragment组合成为一个多区域的UI,并且可以在多个activity中再使用。你可以认为fragment是activity的一个模块零件,它有...
"android fragment 页面切换简单demo"是一个典型的示例,用于演示如何在Android应用中使用Fragment进行页面切换。这个demo旨在通过简洁明了的代码帮助开发者理解Fragment的基本用法。 首先,Fragment是Android SDK...
在“fragment 底部导航 简单demo”中,我们将学习如何结合Fragment和底部导航栏来构建一个简洁的应用界面。 首先,我们要创建Fragment的实例。Fragment通常包含布局文件和逻辑代码,用于处理用户交互。例如,我们...
在"fragmentdemo简单实例"中,我们可以学习到以下几个关键知识点: 1. **Fragment的创建**:首先,你需要创建一个继承自`android.app.Fragment`或`androidx.fragment.app.Fragment`的类。在这个类中,通常会重写`...
"Fragment管理demo"是一个示例项目,展示了如何有效地管理和切换Fragment,特别是如何使用`add()`、`hide()`和`replace()`方法来实现类似FragmentPagerAdapter的效果。 首先,`Fragment`的生命周期与`Activity`紧密...
以下是一个简单的Fragment示例: ```java public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // ...
`Fragmentdemo`很可能是包含了一个关于Fragment使用的基本示例项目,帮助开发者学习和理解如何在实际应用中操作和管理Fragment。 Fragment可以看作是Activity的一部分,它可以有自己的布局和生命周期。在同一个...
在"Android FragmentDemo"中,我们有两个简单的小Demo,"FragmentDemodongtai"和"FragmentDemojingtai",它们旨在帮助初学者更好地理解和运用Fragment。 首先,我们来深入理解Fragment的基本概念。Fragment由...
官方的Fragment Demo提供了关于如何在应用程序中有效使用Fragment的实例和示例代码,这对于理解和掌握这一核心概念非常有帮助。虽然现在可能无法直接从官方渠道获取这个Demo,但我们可以根据基本概念和常见的使用...
本示例“Fragment间传值Demo”将探讨三种主要的Fragment间传值方法:通过标签传值、回调函数传值以及使用第三方开源框架。 1. **通过标签传值** 当在同一个Activity中管理多个Fragment时,我们可以通过设置和获取...
"android Fragment Demo"就是一个展示如何使用Fragment的简单示例。 Fragment的概念首次引入是在Android 3.0(API级别11)中,主要是为了解决平板电脑等大屏幕设备上界面设计的复杂性。然而,随着时间的推移,它已...
本Demo "fragment简单的切换页面demo" 主要展示了如何在一个Activity中通过两个按钮来切换不同的Fragment,从而实现界面的动态更新。 首先,我们需要了解Fragment的基本使用。一个Fragment通常包含布局文件以及与之...
一般的应用中都用底部选项卡切换,很多人实现都是使用的ActivityGroup,或者更早的用TabHost,而在高版本编写环境下会提出警告,说ActivityGroup已经过时,其实在Android3.0出现Fragment后就取代了ActivityGroup,...
【Fragment框架小Demo详解】 Fragment是Android开发中的...可能包含了如何创建Fragment、添加到Activity、处理生命周期方法以及简单通信的示例。通过分析和实践这个Demo,可以进一步巩固对Fragment的理解和应用能力。
在本教程中,我们将深入探讨如何在Android Studio 3.1.4环境下进行Fragment的简单应用,实现一个Activity中显示一个Fragment。 首先,创建一个新的Android项目。打开Android Studio,选择“Start a new Android ...