获取Titanium.App.Properties的另一个胜利或使其全球可用

时间:2012-06-28 13:06:37

标签: javascript properties titanium-mobile appcelerator-mobile

如果您没有花时间理解我的问题或得到合理的答案,请不要回答这个问题。我得到了一些答案,我认为我非常清楚地解释了我的问题。难道这个问题让我感到疯狂,还是有人在Titanium.App.Properties上有一个直截了当的答案?

我有一个登录表单,用于将用户名存储在一个:

  

Titanium.App.Properties.setString( “username” 的,e.value);

和另一个密码:

  

Titanium.App.Properties.setString( “密码”,e.value);

表单TextFields保存这些值(在商店之后),即使我关闭窗口,关闭并重新启动应用程序。这是因为App.Properties.getString(“value”);我想…。?! 但是当我用它的App.Properties.getString(“value”)复制孔形式时;到另一个窗口,TextFields为空并且根本不包含任何值。我知道属性字符串必须在App.Properties中有一些位置,但是如何抓住它并在应用程序中的另一个位置使用它?

我的问题是:如何从我的

中获取价值
  

var userNameValue = Titanium.App.Properties.getString(“userNameValue”);

可以在另一个窗口或孔应用程序(全局)中使用?我怎样才能抓住它并在应用程序的另一个地方使用它?由于userName只包含一个电子邮件地址而passWord只包含连续的字母或数字,所以我认为没有充分的理由将这些(仅单独的单词)转换为对象(JSON)。但是,如果你的意思是我也有, - 我如何从我的TextField设置它,并在我的应用程序中的其他地方的另一个TextField中获取它。到目前为止我没有运气。我希望你能帮助我,我可以保持理智。

1 个答案:

答案 0 :(得分:1)

  

Titanium.App.Properties.getString( “userNameValue”);

这是全局可用的,每个文件中都可以访问Titanium对象的任何属性。

但如果由于某种原因这对你不起作用并且你想设置一个全局变量, 你可以做到以下几点:

  • 创建名为myGlobals.js的文件//或其他任何内容,
  

//把它放在那里,例如      var myProperties = {};

  • 在您想要使用的任何文件中写入第一行
Ti.include('myGlobals.js');

然后你可以使一个属性全局可用,例如在应用初始化的某个地方的app.js中写这个

  

myProperties.Username = Titanium.App.Properties.getString(“userName”);

然后,您可以通过访问属性获取每个文件中的值 myProperties.Username

//of course the Propertie has to be set before you can get them
( Titanium.App.Properties.setString("userName",e.value); ) //like you do it

但是,Titanium.App.Properties.getString(“userName”); 无论如何应该可以从任何文件中获取,(但你可以尝试一下,虽然我不认为这样做很好)

我有一个类似的问题,它没有从ios设置中设置的属性中获取任何值作为默认值。

我必须转到设置并手动更改或编辑默认值,然后重启

  

Titanium.App.Properties.getString( “userName的”);   按原样返回值,   我希望这可以帮助你=)

回答评论

我很高兴我可以帮助你=)

是的,您可以像这样使用焦点EventHandler:

textfield.addEventListener("focus",function(){
textfield.value = "Test"; 
});

除此之外,你是否为两个窗口使用相同的Textfield?像

var Textfield = Ti.Ui.createTextField({...});

并将其添加到2个不同的窗口?

win1.add(Textfield);
win2.add(Textfield);

这导致我在TableViewRows中出现标签问题,在TableView中使用相同的行2次

文本仅显示在1个标签上,有时会切换标签 我认为你不能将一个相同的钛物体添加到另外一个物体

也许那可能是罪魁祸首, 不知道只是一个想法=)