移动应用程序表视图中的附加行必须永久保留(钛)

时间:2011-10-03 05:30:36

标签: android javascript-events appcelerator-mobile mobile-application

我正在使用钛来开发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});
}   

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 对象必须是Row类型:comment_table.appendRow(ROW_TYPE_OBJECT)
  2. 如果你要回去(假设按下后退按钮),那么当前窗口会关闭 该窗口的所有孩子都会说删除视图,按钮,表格。
  3. 假设当前窗口的Tableview为widnow1,现在你打开window2,如果你是 从window2转换到window1然后你可以看到带有新附加行的表 窗口1。
  4. <强>解决方案:

    1. 创建一个全局数组(data[]),用于保存您要访问的行和行 追加。
    2. 加载当前window1时,检查数据是否为空。
    3. 如果数据不为null,则从全局数组数据加载tableview tableview.setData(data),否则加载新行。