在片段中动态添加文本视图
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;
【讨论】:
以上是关于在片段中动态添加文本视图的主要内容,如果未能解决你的问题,请参考以下文章
尝试通过循环动态添加多个文本视图时应用程序崩溃。添加单个文本视图时效果很好