程序很easy。好长时间没有搞定。郁闷。。。。

。。。。

在论坛咨询,最终找到答案。

描写叙述:

一个Activity:MainActivity。内部是一个Fragment:FragmentA。FragmentA里面有TextView。

问题:不管怎样也得不到FragmentA内部的TextView,返回值永远是Null

详细描写叙述:

MainActivity的layout:activity_main.xml

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

>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"> <fragment android:name="com.fragmentexercise.FragmentA"
android:id="@+id/fragment_a"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

FragmentA的layout:fragment_a.xml

<?

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

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:textSize="18sp"
android:text="初始化文本" />

MainActivity.java

public class MainActivity extends Activity {

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); }

FragmentA.java

public class FragmentA extends Fragment {

	@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_a, container, false);
} @Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// TextView textView1 = (TextView) getView().findViewById(R.id.textView1);
// textView1.setText("改变");
}

详细问题:

在FragmentA.onActivityCreated()中。

TextView textView1 = (TextView) getView().findViewById(R.id.textView1); 得到的始终是Null。

在Fragment.onCreateView()中,

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {   第二个參数 container一直是个空值

在MainActivity中,findViewById(R.id.textView1),   相同是空值。

问题在哪里呢??????????

===============================================================================================================

原因

让Activity 继承 android.support.v4.app.FragmentActivity, 让Fragment继承android.support.v4.app.Fragment就能够了

这样。在FragmentA的onStart等方法中,getActivity().findViewById(R.id.textView1) 就能得到这个TextView。

直接继承 android.app.Fragment,就不行。或许是Android的bug吧。



事实上我是依照developer.android.com上的trainning的样例做的。那个样例是为了兼容android3.0曾经的系统,继承了android.support.v4.app.Fragment。官方样例执行正常。

我的手机是Android4.1的,能够支持Fragment。所以我直接继承了adnroid.app.Fragment。结果就死活不成功。



想不到是这个原因。

Android使用Fragment,不能得到Fragment内部控件,findViewById()结果是Null--已经解决的更多相关文章

  1. Android音乐、视频类APP常用控件:DraggablePanel(2)

     Android音乐.视频类APP常用控件:DraggablePanel(2) 附录文章1主要演示了如何使用DraggablePanel 的DraggableView.DraggablePanel ...

  2. 用c/c++混合编程方式为ios/android实现一个自绘日期选择控件(一)

    本文为原创,如有转载,请注明出处:http://www.cnblogs.com/jackybu 前言 章节: 1.需求描述以及c/c++实现日期和月历的基本操作 2.ios实现自绘日期选择控件 3.a ...

  3. Android 图片混排富文本编辑器控件

    概述 一个Android 图片混排富文本编辑器控件(仿兴趣部落) 详细 代码下载:http://www.demodashi.com/demo/12032.html 一.一个Android 图片混排富文 ...

  4. DataGridTemplateColumn 如何获取内部控件

    WPF中有时候我们不使用DataGridTextColumn 而使用用途更加宽广的DataGridTemplateColumn 但是用途多的东西当然也更复杂. 这里说下如何取DataGridTempa ...

  5. Android音乐、视频类APP常用控件:DraggablePanel(1)

     Android音乐.视频类APP常用控件:DraggablePanel(1) Android的音乐视频类APP开发中,常涉及到用户拖曳视频.音乐播放器产生一定交互响应的设计需求,最典型的以You ...

  6. Android自定义控件View(三)组合控件

    不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...

  7. Android下拉涮新第三方通用控件

    Android下拉涮新第三方通用控件https://github.com/chrisbanes/Android-PullToRefresh Pull To Refresh Views for Andr ...

  8. Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php

    Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php 1. Keyword/subtitle 1 2. 使用dwr3的异常convert处 ...

  9. qtp录制时间控件不允许用户手动输入的解决办法

    qtp录制时间控件不允许用户手动输入的解决办法 [前面的话] 一边学习qtp,一边用自己的项目试着写代码,而遇到一个问题就会让自己卡壳很久,这次也是这样的,在写好了登录代码以后,自己就试着写第一个预订 ...

  10. 教你写一个Android可快速复用的小键盘输入控件

    引子 在Android项目开发中特别是一些稍大型的项目,面对需求文档的时候你经常会发现很多地方用到了同样的组件,但是又略有不同.比如这个: 右边是一个小键盘输入板,左边当焦点不同的时候分别用右边的小键 ...

随机推荐

  1. C# 实现窗口程序winform像QQ一样靠近桌面边缘自动隐藏窗口

    实现原理: 实现这个功能的原理步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是 ...

  2. 使用uglifyjs压缩JS

    一般vue项目完成打包以后需要优化,特别是首次打开加载速度们,webpack打包以后js文件体积很大等方法,可以用这个方法来压缩js文件 安装node.js 安装当前应用 -- uglifyjs 如何 ...

  3. 一行代码解决IE兼容性问题

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...

  4. js获得 json对象的个数(长度)

    function getJsonObjLength(jsonObj) { var Length = 0; for (var item in jsonObj) { Length++; } return ...

  5. apche本地测试,无法访问此网站

  6. word上怎么打钩

    原文:http://www.wordlm.com/html/2291.html 有时我们在Word中制作一份特殊的表格时,可能会用到这样一些特殊符号,“在方框里打钩”或打叉.这些符号虽看起来简单不起眼 ...

  7. ASP.net session丢失

    ASP.NET Session的实现: asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身就是用来做 ...

  8. STL_算法_对全部元素排序(sort、stable_sort)

    C++ Primer 学习中. . .   简单记录下我的学习过程 (代码为主) //大部分容器适用.不适用于list容器 sort(b,e) sort(b,e,p) stable_sort(b,e) ...

  9. org.hibernate.AssertionFailure: null id in com.you.model.User entry (don&#39;t flush the Session after a

    1.错误描写叙述 org.hibernate.AssertionFailure: null id in com.you.model.User entry (don't flush the Sessio ...

  10. RT-Thread开篇

    一直以来对操作系统都有一种既仰慕又畏惧的情感.一方面被操作系统的强大深深吸引.还有一方面又被操作系统的复杂性感到畏惧. 记得在学校的时候也学过一些操作系统的理论知识,但也只限于理论,更似人云亦云. 本 ...