Fragment的使用相关
使用Fragment时,需要继承Fragment或者Fragment的子类,
直接贴代码,展示一个例子:
LeftFragment.java:
left_fragment.xml
平板:
手机
RightFragment.java
right_fragment.xml
主程序:
activity_first_fragment.xml
DetailActivity.java
activity_detail.xml
fragment之间的数据交互
发送:
接受
使用Fragment时,需要继承Fragment或者Fragment的子类,
直接贴代码,展示一个例子:
LeftFragment.java:
import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class LeftFragment extends Fragment implements OnItemClickListener { private String[] data = new String[] { "灵魂战车2", "变形金刚3:月黑之时", "敢死队2" }; private ListView listView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.left_fragment, null); listView = (ListView) view.findViewById(R.id.listview_movie_list); listView.setOnItemClickListener(this); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>( getActivity(), android.R.layout.simple_list_item_activated_1, data); listView.setAdapter(arrayAdapter); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); return view; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView textView = (TextView) getActivity().findViewById( R.id.textview_detail); String detail = "nihao"; if (textView == null) { Intent intent = new Intent(getActivity(), DetailActivity.class); intent.putExtra("detail", detail); startActivity(intent); } else { textView.setText(detail); } } }
left_fragment.xml
平板:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/titles" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="4" class="cn.eoe.first.fragment.LeftFragment" /> <fragment android:id="@+id/details" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" class="cn.eoe.first.fragment.RightFragment" /> </LinearLayout>
手机
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFF"> <ListView android:id="@+id/listview_movie_list" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
RightFragment.java
import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class RightFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.right_fragment, null); return view; } }
right_fragment.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textview_detail" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
主程序:
import android.app.Activity; import android.os.Bundle; public class FirstFragmentActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first_fragment); } }
activity_first_fragment.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/titles" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="4" class="cn.eoe.first.fragment.LeftFragment" /> <fragment android:id="@+id/details" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" class="cn.eoe.first.fragment.RightFragment" /> </LinearLayout>
DetailActivity.java
import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class DetailActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); TextView detail = (TextView)findViewById(R.id.textview_detail); detail.setText(getIntent().getExtras().getString("detail")); } }
activity_detail.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/details" android:layout_width="match_parent" android:layout_height="match_parent" class="cn.eoe.first.fragment.RightFragment" /> </RelativeLayout>
fragment之间的数据交互
发送:
public void onClick_SendData(View view) { MyFragment fragment = new MyFragment(); Bundle bundle = new Bundle(); String textdd = text.getText().toString(); bundle.putString("name", textdd); fragment.setArguments(bundle); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction(); fragmentTransaction.add(R.id.fragment_container1, fragment, "fragment"); fragmentTransaction.commit(); Toast.makeText(this, "数据已成功传递.", Toast.LENGTH_LONG).show(); }
接受
String name = getFragmentManager().findFragmentByTag("fragment") .getArguments().getString("name");
- FirstFragment.zip (1.1 MB)
- 下载次数: 0
- FragmentArgument.zip (1.2 MB)
- 下载次数: 0
发表评论
-
2048源码(核心算法有,缺少几个anctionbar,以后补上)
2014-09-25 13:22 15402048游戏基本上有四部分组成, 1:主activity,包含 ... -
android动画效果
2014-09-24 18:06 1150前几天弄alertdialog和popupwindow的时候, ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1903区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 544最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 664多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 949Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 680BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 467说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 4371:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 541下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 892不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 521不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 715android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1444Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 508xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 550目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 477直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2556FragmentTransaction 进行数据传递 imp ... -
ActionBar简介
2014-07-31 10:47 716Action bar是一个标识应用程序和用户位置的窗口功能,并 ...
相关推荐
`Activity`与`Fragment`之间的通信以及`Fragment`之间的数据传递则是保证应用正常运行的关键。 首先,我们来讨论如何使用`ViewPager`和`Fragment`来创建滑动导航栏。`ViewPager`通常配合`PagerAdapter`的子类(如`...
在这个"fragment实用Demo"中,我们很可能会看到如何在实际应用中有效地利用Fragment。 Fragment的生命周期与Activity类似,包括onAttach(), onCreate(), onCreateView(), onViewCreated(), onActivityCreated(), ...
在Android开发中,Fragment和Activity之间的通信是一种常见的需求。Fragment可以视为Activity的一...这种方式不仅适用于简单的数据传递,也可以扩展到更复杂的事件监听和回调场景,是Android开发中一个非常实用的技术。
3. 数据传递和通信:在Fragment之间或Fragment与Activity之间传递数据,可以通过Bundle、接口回调、EventBus等方式实现。 4. 页面适配和性能优化:考虑到不同设备的屏幕尺寸和性能差异,需要适配各种屏幕,并通过...
例如,我们可以创建一个名为`OnDataInteractionListener`的接口,其中有一个`onDataReceived`方法,用于接收Fragment传递的数据: ```java public interface OnDataInteractionListener { void onDataReceived...
当涉及到两个Fragment在不同的Activity之间交互时,通常需要传递数据或触发特定操作。在这个场景下,`startActivityForResult()`方法是实现这种交互的一个常见手段,尽管它传统上是与Activity之间的交互关联的,但...
7. **事件传递**:如果`Fragment`需要与`RadioGroup`进行交互,可以使用`setTargetFragment()`和`getTargetFragment()`方法传递数据,或者通过接口回调的方式。 综上所述,`RadioGroup`结合`Fragment`是一种高效且...
5. **数据传递** 在Fragment和Activity之间传递数据,可以通过Intent(如果Fragment是通过Intent启动的Activity的一部分),或者使用setArguments(Bundle)和getArguments()方法。此外,还可以通过接口回调或...
其中,使用Interface是最基础的方式,定义一个接口并在两个Fragment之间共享,一个Fragment作为回调实现接口,另一个Fragment通过接口传递数据。 6. **Fragment嵌套** 一个Fragment内还可以包含其他Fragment,这...
在`Otto_AsyncTask_Fragment_Demo1`中,Otto用于发布和订阅异步任务的结果,使得各个组件能够实时响应数据变化。 2. **AsyncTask**:Android提供的一个用于执行后台任务的工具类,它可以轻松地在UI线程和后台线程...
6. **Intent与数据传递** Intent是Android中实现组件间通信的关键。在这个记事本应用中,可能会使用Intent来启动新的Activity,比如从列表点击跳转到详情页,或者从编辑页面返回列表。Intent还能用来传递数据,如...
这种方法特别适合在Adapter、Dialog等组件中获取登录回调,避免了数据的传递和复杂的事件通信。 总的来说,Fragment在Android开发中不仅用于创建可复用的视图模块,还可以作为通信的桥梁,简化跨组件交互的逻辑。...
在Android开发中,ExpandableListView 是一个非常实用的控件,它可以展示树形结构的数据,通常用于呈现层次化的信息,比如目录结构、菜单等。在实际应用中,我们经常需要动态地生成数据并加载到ExpandableListView中...
这里,我们传递一个对象作为第二个参数,表示POST数据,`'json'`是预期的服务器响应类型。 3. **使用`.load()`和`.html()`** 对于只需要更新HTML内容的情况,`.load()`和`.html()`方法非常实用。例如,加载服务器...
《Android应用框架原理与程序设计》是一本深入探讨Android应用程序开发的实用教程。该压缩包包含了一系列相关的源码,适用于毕业设计和课程设计项目,旨在帮助开发者理解Android应用的内部工作机制,提升编程技能。 ...
通过这个“bundle_message”的源码,我们可以深入理解如何有效地使用Bundle进行数据传递,以及在实际开发中可能遇到的问题和解决策略。源码可能涵盖了异常处理、空值检查、数据验证等多个方面,这些都是Android开发...
源码中可能会展示如何创建和管理多个Activity,以及如何通过Intent传递数据。 2. **布局设计**:XML文件用于定义Android应用的用户界面。源码可能包括LinearLayout、RelativeLayout、ConstraintLayout等布局的使用...
MobileSale(实用1).zip 是一个包含Java源码的压缩包,主要针对的是移动销售管理系统的实现,适合于毕业设计或课程设计项目。这个项目可能涵盖了Android应用开发的基础知识,以及一些进阶的编程概念和技术,如数据...