为什么这不会创建新表?

时间:2018-02-25 18:23:27

标签: java android object tablelayout layout-inflater

我已经创建了一个基本的应用程序来尝试让这个功能正常工作,但我无法让它工作。当我单击Add Table按钮时,它将创建一个布局文件的实例,其中包括一个表格布局和3个表格行。我已经远远没有把我在这里看到的问题的一堆答案结合起来,但我正努力让这个工作起来。

如果我点击添加表,它会创建两个表,依此类推,如果我一直点击它。但是,名称只会改变第一个表,如下所示:

在:

Before

后:

After

所以表1应该说“tableLayout0”,表2应该说“tableLayout1”。在每个按钮单击我想要它创建一个全新的表,它具有相同的布局属性。

int i;
Button addBtn;
LinearLayout linearLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    i = 0;
    linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
    addBtn = (Button)findViewById(R.id.addBtn);

    addBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            createTable();
            i++;
        }
    });
}

public void createTable(){

    String tableLayoutName = "tableLayout"+i;

     TableLayout tableLayout = new TableLayout(this);

     View tableCell = this.getLayoutInflater()
            .inflate(R.layout.table_details, null, false);

    tableLayout.addView(tableCell);
    linearLayout.addView(tableLayout);

    Button addSetBtn;
    addSetBtn = (Button)findViewById(R.id.addSetBtn);
    addSetBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            toastMessage("Click Registered");
        }
    });

    TextView exerciseNameTextView = (TextView)findViewById(R.id.exerciseNameTextView);
    exerciseNameTextView.setText(tableLayoutName);

}

//Adaptable Toast Message
private void toastMessage(String message){
    Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}

0 个答案:

没有答案