1

我正在使用钛来开发 Android 应用程序。我正在使用以下代码来显示数据和使用表格视图。当我单击comment_btn 时,表格视图中会附加一个新行。它工作正常。但是当我单击返回按钮或转到另一个窗口并再次返回到同一个窗口时我添加了我的新行,新添加的行不保留。我也尝试 了insertRowAfter但它给了我相同的结果。我使用了以下代码:

for (var i=0;i<5;i++)
{
    var row = Ti.UI.createTableViewRow({height:'auto',className:"row"});
    var comments = Ti.UI.createLabel(
    {
        text:'new comment',
        height:'auto',
        font:{fontSize:12, fontFamily:'Helvetica Neue'},
        color:'#000',
        width:'auto',
        textAlign:'left',
        top:10,
        left:40,
    });row.add(comments);
}
comment_table.setData(data);
commnet.add(comment_table);
var comment_btn = Titanium.UI.createButton(
{
    title:'comment',
    height:60,
    width:60,
    bottom:-5,
    left:-2,
});
comment.add(comment_btn);
var comment_box = Titanium.UI.createTextArea({
    borderRadius:5,
    backgroundColor:'#EEE',
    editable: true,
    height:30,
    width:200,
    top:10,
    font:{fontSize:15,fontFamily:'Marker Felt'},
    color:'#000',
    keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
    returnKeyType:Titanium.UI.RETURNKEY_DEFAULT,
    borderRadius:5, 
});
comment.add(comment_box);
comment_btn.addEventListener('click', function()
{
    comment_table.appendRow({title:comment_box.value});
    //comment_table.insertRowAfter(3,{'title':comment_box.value});
}   
4

1 回答 1

0
  1. Object 必须是 Row 类型,用于:comment_table.appendRow(ROW_TYPE_OBJECT)
  2. 如果您要返回(假设按下返回按钮),则当前窗口将关闭,因此该窗口的所有子窗口都将删除视图、按钮、表格。
  3. 假设当前带有 Tableview 的窗口为 widnow1,现在您打开 window2,如果您从 window2 转换到 window1,那么您可以在 window1 中看到带有新附加行的表格。

解决方案:

  1. 创建一个全局数组(data[]),它包含您要追加的行和行。
  2. 加载当前window1时,检查数据是否为空。
  3. 如果数据不为空,则从全局数组数据加载您的表格视图 tableview.setData(data),否则加载新行。
于 2013-06-14T07:25:56.927 回答