0

我是 android 的新手,我不知道如何产生这个输出:学科名称:1 {完成循环代码从 0 到 9 执行}

然后它会出来并更新 textview 文本:即学科名称:2 并将进入 For Loop {完成 for 循环代码执行从 0 到 9 }

这是java代码:

public class SummaryDetailActivity extends Activity
{  TableLayout summaryDetailDisciplineTableLayout;
   LayoutInflater mInflater;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.summarydetail_view);
                 mInflater = getLayoutInflater();
summaryDetailDisciplineTableLayout = (TableLayout)findViewById(R.id.summaryDetail_disciplinetable);

//请看这些代码行:

    for(int i=0;i<2;i++)
  {
  TextView disciplineTextView = (TextView)findViewById(R.id.summaryDetail_disciplinetext);
  disciplineTextView.setText("discipline name: "+i);
 for(int j=0;j<10;j++)
{TableRow disciplineRow = (TableRow) mInflater.inflate(R.layout.summarydetailrow_view,null);
TextView disciplineDeviceLabel = (TextView) disciplineRow.findViewById(R.id.summaryDetail_info1);
TextView disciplineQuantityLabel = (TextView)disciplineRow.findViewById(R.id.summaryDetail_hypen);
 TextView disciplineLocationLabel = (TextView) disciplineRow.findViewById(R.id.summaryDetail_info2);
  disciplineDeviceLabel.setText("device no." + j);
disciplineQuantityLabel.setText("quantity No." + j);
  disciplineLocationLabel.setText("Location No." + j);
disciplineRow.setId(j);
  summaryDetailDisciplineTableLayout.addView(disciplineRow);
}

}
}
}

此代码正在产生此输出: 代码快照

4

3 回答 3

1

为什么你的代码没有按照你想要的方式工作。是因为这个

TextView disciplineTextView = (TextView)findViewById(R.id.summaryDetail_disciplinetext);

作为静态视图启动,不能在循环中克隆。这就是学科名称的值是 1 而不是 0 的原因。循环只更新值而不克隆视图。

你应该做这个

TextView disciplineTextView = new Textview(this);
disciplineTextView.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
disciplineTextView.setText("discipline name: "+i);
summaryDetailDisciplineTableLayout.addView(disciplineTextView);

for(int j=0;j<10;j++) {
-your code-
}

您应该更改 xml 结构以获得更好的 UI。希望这可以帮助。

于 2013-11-12T08:16:25.267 回答
0

这就是我将如何做到的。在我的 XML 代码中,我将创建一个 LinearLayout,并在其中创建一个 TableLayout。

获取 TableLayout 的 id 后,我将动态创建 TableRows 和 TextViews。您可以使用 TableRow.LayoutParams 或 LayoutParams 设置它们的布局。之后您可以简单地设置文本,然后将它们添加到您添加到 TableLayout 的 TableRow 中。

希望这个建议有帮助!

于 2013-11-12T06:48:07.120 回答
0

我认为onCreate()你应该先使用充气器,然后设置你刚刚充气的视图。试试这个:

View view = getLayoutInflater().inflate(R.layout.summarydetail_view, null);
setContentView(view);
于 2013-11-12T06:48:36.330 回答