-1

如果您没有花时间理解我的问题或没有合理的答案,请不要回答这个问题。我有一些离题很远的答案,我想我很清楚地解释了我的问题。这个问题会让我发疯,还是有人在 Titanium.App.Properties 上有一个直截了当的答案?

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

Titanium.App.Properties.setString("userName",e.value);

和另一个密码:

Titanium.App.Properties.setString("passWord",e.value);

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

我的问题是:如何从我的

var userNameValue = Titanium.App.Properties.getString("userNameValue");

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

4

1 回答 1

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"); 返回应有的值,我希望这对您有帮助=)

回复评论

我很高兴能帮助你 =)

是的,您可以像这样使用焦点事件处理程序:

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

除此之外,您是否对两个窗口使用相同的文本字段?喜欢

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

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

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

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

仅在 1 个标签上显示的文本,有时它会切换标签我认为您不能将一个相同的钛对象添加到多个其他对象

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

于 2012-06-28T14:33:39.870 回答