-1

私の質問を理解するのに時間がかからない場合、または合理的な答えがない場合は、これに答えないでください。私はかなり側にあるいくつかの答えを持っています、そして私は私の問題を非常に明確に説明していると思います。この問題は私を狂わせますか、それともTitanium.App.Propertiesに正直で明確な答えを持っている人がいますか?

ユーザー名を1つに保存するログインフォームがあります。

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");

別のウィンドウで利用できるようにするか、ホールアプリ(グローバル)で利用できるようにしますか?どうすればそれを取得してアプリの別の場所で利用できますか?userNameには電子メールアドレスのみが含まれ、passWordは連続した文字または数字のみで構成されているため、これらの個別の単語のみをオブジェクト(JSON)にする正当な理由はわかりません。しかし、私も持っているということであれば、これを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("ユーザー名"); 必要に応じて値を返しました。これが役立つことを願っています =)

コメントへの回答

私はあなたを助けることができてうれしいです=)

はい、次のようにフォーカス EventHandler を使用できます。

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

それに加えて、両方のウィンドウに同一の Textfield を使用していますか? お気に入り

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

2つの異なるウィンドウに追加しますか?

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

これにより、TableViewRows で同じ行を 2 回使用して、TableViewRows のラベルに関する問題が発生しました

テキストは 1 つのラベルにのみ表示され、ラベルが切り替わることもありました。1 つの同じチタン オブジェクトを複数の他のオブジェクトに追加することはできないと思います。

たぶんそれが犯人かもしれません、ただの考えではありません=)

于 2012-06-28T14:33:39.870 に答える