我有一个带有TableLayout的活动,现在我正在将带有表的部分更改为片段。我正在尝试从该片段内部动态地向TableLayout
添加行。我为TableRow
添加了一个布局,我尝试对其进行充气,设置数据并将其添加到表中。
当我在activity
中进行此操作时。现在,当我将表格的一部分移动到fragment
时,它不起作用,表格所在的部分仍然是空白的,就像那里什么也没有。
活动中的代码:
private void AddNewRowToTable(String string1, String string2)
{
// Inflate your row "template" and fill out the fields.
TableRow row = (TableRow)LayoutInflater.from(this).inflate(R.layout.table_row, null);
((TextView)row.findViewById(R.id.textViewName1)).setText(string1);
((TextView)row.findViewById(R.id.textViewName2)).setText(string2);
row.setOnClickListener(_rowOnClickListener);
table.addView(row);
}
并定义了表var:
table = (TableLayout)findViewById(R.id.tableLayoutWorkers);
这是在片段中不起作用的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
this.containingActivity = getActivity();
this.inflater = inflater;
currentFragmentView = inflater.inflate(R.layout.fragment_show_statistics, null);
table = (TableLayout)currentFragmentView.findViewById(R.id.tableLayoutWorkers);
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_show_statistics, container, false);
}
方法的一个小改动:
private void AddNewRowToTable(String string1, String string2)
{
// Inflate your row "template" and fill out the fields.
TableRow row = (TableRow)inflater.inflate(R.layout.table_row, null);
//all the rest is the same
}
由于我是新手,我不确定何时应该使用View
,何时应该使用Context
或ViewGroup
以及原因。
你知道为什么桌子没有被填满吗?
答案 0 :(得分:0)
在你的oncreateView方法中,你会膨胀两个fragment_show_statistics,你会返回一个,另一个你找到该表。
所以你需要返回你找到该表的那个。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
this.containingActivity = getActivity();
this.inflater = inflater;
currentFragmentView = inflater.inflate(R.layout.fragment_show_statistics, null);
table = (TableLayout)currentFragmentView.findViewById(R.id.tableLayoutWorkers);
// Inflate the layout for this fragment
return currentFragmentView;
}