【问题标题】:How to set value of row item in Table Layout dynamically in android?如何在android中动态设置表格布局中行项的值?
【发布时间】:2016-11-09 14:13:06
【问题描述】:

我正在创建动态行并在表格布局中添加此行。在行创建期间,设置每个 textView 的值。但是我们在设置每个行项目的单击侦听器上的值时遇到问题。实际上,我们在每行内有两个 textView 和第一个文本视图的 onclick 我们打开数据选择器。所以我想在 textview 的日期值。

tableLayout = (TableLayout) dialog.findViewById(R.id.tableLayout_popup);
View tableRow =  LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup1st_row, null, false);
                tableLayout.addView(tableRow);
            for (int i = 0; i < masterDataList.size(); i++) {
               /* if (i == 0) {
                    View tableRow = LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup1st_row, null, false);
                    tableLayout.addView(tableRow);

                } else {*/
                final   View  tableRow1 =   LayoutInflater.from(MileStoneActivity.this).inflate(R.layout.cdd_popup_row, null, false);
                      tableRow1.setId(i);
                    tv1 = (TextView)tableRow1.findViewById(R.id.textView24);
                    tv2 = (TextView)tableRow1.findViewById(R.id.textView25);
                    tv2.setId(i);
                    tv1.setText(masterDataList.get(i).getLineItemNumber());
                    tv2.setText((masterDataList.get(i).getRequestedDeliveryDate()));

                tv2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        rowNumber = tableRow1.getId();


                        new DatePickerDialog(MileStoneActivity.this, date, myCalendar
                                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                                myCalendar.get(Calendar.DAY_OF_MONTH)).show();

                        // dialog.dismiss();


                        //  }

                    }
                });

                    tableLayout.addView(tableRow1);

这是我的日期选择器列表器: myCalendar = Calendar.getInstance();

                final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear,
                                          int dayOfMonth) {
                        // TODO Auto-generated method stub
                        myCalendar.set(Calendar.YEAR, year);
                        myCalendar.set(Calendar.MONTH, monthOfYear);
                        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        updateLabel();
                    }

                };

我未能设置 tv2 的文本值。我想更改已单击的特定行的值。请帮助我。任何帮助都会得到赞赏。

【问题讨论】:

    标签: android tablelayout tablerow


    【解决方案1】:

    我不知道我是否正确,但您可以将 date 设为返回侦听器的方法。在方法中传递 tv2 作为参数,然后用这个参数更新标签。

    private DatePickerDialog.OnDateSetListener getDate(final TextView tv){
        return new DatePickerDialog.OnDateSetListener() {
    
                        @Override
                        public void onDateSet(DatePicker view, int year, int monthOfYear,
                                              int dayOfMonth) {
                            // TODO Auto-generated method stub
                            myCalendar.set(Calendar.YEAR, year);
                            myCalendar.set(Calendar.MONTH, monthOfYear);
                            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                            updateLabel(tv);
                        }
    
                    };
    }
    

    然后在 DatePicker 构造函数中执行此操作:

    new DatePickerDialog(MileStoneActivity.this, getDate(tv2), myCalendar
                                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                                    myCalendar.get(Calendar.DAY_OF_MONTH)).show();
    

    【讨论】:

    • 感谢您的回复。但是我怎么知道 tv2 textView 属于哪一行
    • @Anand 传递电视你可以得到parentView,那将是行
    • 它将设置最后一行文本视图的值,而不是所需的行
    • 请告诉我任何其他设置值的方法..我没有得到..花了很长时间
    猜你喜欢
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多