在片段中动态添加文本视图

Posted

技术标签:

【中文标题】在片段中动态添加文本视图【英文标题】:Adding a textview dynamically in fragment 【发布时间】:2012-10-24 09:29:40 【问题描述】:

我是 android 开发的新手..我正在使用片段。我现在面临的问题是 - 我无法在片段中动态添加视图。当我尝试这样做时,我得到了一个空指针异常......我的代码sn-p如下:

final LinearLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.connections_layout, container, false);
EditText editText = new EditText(getActivity());

final int i = 5;
editText.setId(i); //Set id to remove in the future.
editText.setLayoutParams(new LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT));
editText.setText("Hello");
Log.d("View","Start");
try
    linearLayout.addView(editText);
catch(Exception e)
    e.printStackTrace();

connection_layout.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                      android:id="@+id/connections"
                      android:layout_
                      android:layout_
                      android:background="#FF0000" >

  </LinearLayout>

片段是属于片段活动的选项卡组的成员。我在我的代码 sn-p 中做错了什么?任何形式的帮助表示赞赏。在此先感谢...

【问题讨论】:

我试图用它的 id 引用线性布局。但这种方法也不成功...... 从哪里获得 NPE? (精确线) @sandrstar,try 块内的行生成 NPE.. @Dazzy_G,我已经与我的问题分享了代码......还有什么我应该提供更好的理解,例如logcat...?? 我的意思是sn-p是什么方法 【参考方案1】:

在片段的onCreateView 上试试这个:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 

 mContainer = inflater.inflate(R.layout.connections_layout, null);
 LinearLayout linearLayout = mContainer.findViewById(R.id.connections);
 EditText editText = new EditText(getActivity());

 final int i = 5;
 editText.setId(i); //Set id to remove in the future.
 editText.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT));
 editText.setText("Hello");
 Log.d("View","Start");
 try
        linearLayout.addView(editText);
 catch(Exception e)
        e.printStackTrace();
 

 return mContainer;

【讨论】:

以上是关于在片段中动态添加文本视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在列表视图中动态添加或删除编辑文本

尝试通过循环动态添加多个文本视图时应用程序崩溃。添加单个文本视图时效果很好

在 Android 中加载动态项目时无法将页脚视图添加到列表视图

我想在动态添加的表格视图中的所有列中添加数字

将文本字段动态添加到表格视图单元格并水平滚动

Android:创建自定义视图并将其动态添加到布局中