QA@IT

Titanium mobileで画面遷移先のテキストボックスが効かない

2577 PV

質問させてください。
現在、Titanium Studioでの開発を行っていますが、下記の問題で詰まってしまいまいした。

・app.jsで画面の遷移分岐条件を記載する
・条件にあった画面へ遷移する
・遷移先画面にはテキストボックスが配置してある

動作は上記のようなものですが、遷移した先に配置してあるテキストボックスに入力しようとしてもキーボードが表示されず入力ができません。

遷移先の画面の動きに関しては、単体でテストをした際にはきちんと入力ができましたので、遷移の方法が間違っているのでしょうか?
皆様のお知恵をお貸しください、よろしくお願いします。

下記サンプルコードです。

// Sample Code
// app.js
var $db = Titanium.Database.open('dbname');
try{
    // @Column : id(hashkey) , name(user_name)
   $db.execute("CREATE TABLE IF NOT EXISTS dbname (id varchar(254), name varchar(64), PRIMARY KEY (id))");
   // Existence of the data is verified
   var $rows = $db.execute("SELECT COUNT(*) CNT FROM dbname WHERE id");
   if($rows.isValidRow()){
        if($rows.field(0) == 0){
           var $newWin = Titanium.UI.createWindow({
           url : "entry.js"
           });
           $newWin.open();
        }else{
           var $newWin = Titanium.UI.createWindow({
           url : "login.js"
        });
          $newWin.open();
        }
    }           
   // Close Object
   $db.close();
   $db = null;
}catch(ex){
   Titanium.API.info(ex);
}

// entry.js
// this sets the background color
Titanium.UI.setBackgroundColor('#000');
// create base UI root window
var $win1 = Titanium.UI.createWindow({  
    title:'$win1',
    backgroundColor:'#fff'
});
// Create Labels
var $lab1 = Titanium.UI.createLabel(
{
    text: '名前を入力してください',
    width: 200,
    height: 60,
    top: 190,
    color: '#000',
    textAlign: 'center'
});
// Create Input Fields
var $textfield = Ti.UI.createTextField(
{
    color: '#000',
    top: 240,
    left: 50,
    width: 200,
    height: 30,
    hintText:'名前を入力',
    keyboardType: Titanium.UI.KEYBOARD_DEFAULT,
    returnKeyType: Titanium.UI.RETURNKEY_DEFAULT,
    borderStyle: Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
});
// TextField Event (return, focus, blur, change)
   <省略>

$btnStart.addEventListener('click', function(e){
  var $val = $textfield.value;
  var $dialog = Titanium.UI.createAlertDialog({
        title: '動作確認',
        message: "" + $val + ""
   });
   $dialog.show();
});

// add parts on window
$win1.add($lab1);
$win1.add($textfield);
$win1.add($btnStart);

$win1.open();

回答

自己解決しました。
app.jsから切り離したWindowを記述しているファイルをインクルードして開けばいいだけでした。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。