Titanium属性getString说:null,如何在不关闭应用程序的情况下显示值?

时间:2014-03-28 19:17:17

标签: android titanium

我是Titanium的新手,现在我想要的是在我点击'保存'按钮时无法在Window2标签的文本字段中显示,而无需关闭应用程序并再次重新打开它,会发生什么当我点击window2中的“保存”按钮时,没有出现getString(myname)的值,这是我的代码,提前感谢。

    var window1 = Ti.UI.createWindow({
        title: 'Window',
        backgroundColor: 'white'
    });

    var textfield = Ti.UI.createTextField({
        width: 200,
        hintText: 'TYPE'
    });

    var button1 = Ti.UI.createButton({
        top: '10%',
        title: 'save'
    });

    button1.addEventListener('click', function(e){
        Ti.App.Properties.setString('NAME', textfield.value);
        window2.open();
        window1.close();
    });
    window1.add(textfield);
    window1.add(button1);
    var myname = Ti.App.Properties.getString('NAME');

    var window2 = Ti.UI.createWindow({
        title: 'Window2',
        backgroundColor: 'white'
    });
    var label = Ti.UI.createLabel({
        text: myname,
        top: '20%'
    });
    window2.add(label);
    window1.open();

2 个答案:

答案 0 :(得分:0)

您在加载时分配myname的值,但在单击按钮后从不触发更改。

试试这个:

var window1 = Ti.UI.createWindow({
    title: 'Window',
    backgroundColor: 'white'
});

var textfield = Ti.UI.createTextField({
    width: 200,
    hintText: 'TYPE'
});

var button1 = Ti.UI.createButton({
    top: '10%',
    title: 'save'
});

window1.add(textfield);
window1.add(button1);

button1.addEventListener('click', function(e){
    Ti.App.Properties.setString('NAME', textfield.value);
    label.setText(Ti.App.Properties.getString('NAME'));
    window2.open();
    window1.close();
});

var window2 = Ti.UI.createWindow({
    title: 'Window2',
    backgroundColor: 'white'
});
var label = Ti.UI.createLabel({
    text: '',
    top: '20%'
});

window2.add(label);
window1.open();

答案 1 :(得分:0)

你做错了是你正在设置属性' NAME'即,

Ti.App.Properties.setString('NAME', textfield.value);

在按钮的点击监听器内。因此,只有在单击按钮时才会设置此属性。

但是您实际上是在点击按钮之前尝试检索您的属性。

问题的一个解决方案是 - 尝试为方法添加事件监听器'打开'到你的window2像这样 -

var myname;
window2.addEventListener('open', function(e){
    myname = Ti.App.Properties.getString('NAME');
    label.setText(myname);
});

希望它有所帮助!

您还可以添加方法'关闭'的事件监听器。到你的窗口1。 有很多方法可以做到这一点。