1

Android デバイスにデプロイされたアプリに、swanify の Titanium Navigation Controller https://github.com/swanify/Titanium-Navigation-Controllerを使用しています。

ここのテーブル行から選択したデータを前のページに戻し、そこにテキスト フィールドを入力しようとしています。

誰でもそれを行う方法について何か考えがありますか? イベントの使用を検討していますが、うまくいかないようです。

ありがとうございました。:)

4

1 に答える 1

0

この状況で私が行ったことは次のとおりです。これは、JavaScript と Titanium のイベント処理の側面を利用しています。一般的な原則は、独自のカスタム イベントを作成し、コントロールでそれらを起動し、他の場所でリッスンすることです。

まずNextWindow.js、window と tableview をカプセル化した CommonJS モジュールという名前のファイルがあるとします。行がクリックされるたびにそのイベントをキャプチャし、window で独自のカスタム イベントを発生させます。

function NextWindow() {
    var self = Ti.UI.createWindow();
    var tableView = Ti.UI.createTableView();
    // Other initialization
    ....
    ....
    tableView.addEventListener('click', function(e) {
        // You may have to use e.rowData.title depending on how you created the table view
        var rowTitle = e.row.title;
        // Now fire a custom event on the window whenever a row is selected
        // send the title through as data
        self.fireEvent('table_row_selected', {title : rowTitle});

    });

    return self;
}
module.exports = NextWindow;

ナビゲーション スタックにプッシュする を作成しNextWindow、それにカスタム イベントのリスナーを追加します。これは、テキスト ボックスのある前のウィンドウ内にあります。

var NextWindow = require('NextWindow');
var nextWindow = new NextWindow();
nextWindow.addEventListener('table_row_selected', function(e) {
    // Do what you want here with the passed back data 
    var title = e.title;
    some_label.text = title;
});
// Open the next window on the NavigationController stack
nav.open(nextWindow);

に添付されたカスタム イベントをリッスンしていましたnextWindow。に TableView があるとしますnextWindow。TableView のクリックをリッスンし、カスタム イベントを発生させます。

于 2013-03-02T20:05:53.310 に答える