Android使用Fragment,不能得到Fragment内部控件,findViewById()结果是Null
程序非常简单,好长时间没有搞定,郁闷。。。。。。。。。。。。
描述:
一个Activity:MainActivity,内部是一个Fragment:FragmentA,FragmentA里面有TextView。
问题:无论如何也得不到FragmentA内部的TextView,返回值永远是Null
具体描述:
MainActivity的layout:activity_main.xml
FragmentA的layout:fragment_a.xml
MainActivity.java
FragmentA.java
具体问题:
在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: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), 同样是空值。
问题在哪里呢??????????
...全文
相关推荐
Android中findViewById返回为空null的快速解决办法
主要介绍了Android中findViewById返回为空null的快速解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
Fragment获取父Activity的TextView控件并修改内容
Fragment获取父Activity的TextView控件并修改内容。这是一个demo,简单实现fragment和activity之间的交互。
android实现点击按钮切换不同的fragment布局
主要为大家详细介绍了android实现点击按钮切换不同的fragment布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android getActivity.findViewById获取ListView 返回NULL的方法
下面小编就为大家带来一篇android getActivity.findViewById获取ListView 返回NULL的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Android fragment实现按钮点击事件的示例讲解
下面小编就为大家分享一篇Android fragment实现按钮点击事件的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


