1

Titanium Studioの追加プラグインを使用してAndroidデバイス用の円グラフを作成しているので、これは私のapp.jsです

var earn=[' ',' '];
var textfield1 = Ti.UI.createTextField({
    value:earn[0],
    keyboardType: Titanium.UI.KEYBOARD_NUMBER_PAD, 
});
win.add(textfield1);
var textfield2 = Ti.UI.createTextField({
    value:earn[1],
    keyboardType: Titanium.UI.KEYBOARD_NUMBER_PAD, 
});
win.add(textfield2);
var webview = Titanium.UI.createWebView({
 url: 'chart.htm'
});
win.add(webview);

これが私の chart.htm です

<script type="text/javascript" src="wz_jsgraphics.js"></script>
<script type="text/javascript" src="pie.js"></script>

<div id="pieCanvas" style="overflow: auto; position:relative;height:350px;width:380px;"></div>

<script type="text/javascript">
var p = new pie();
p.add("Jan",100);
p.add("Feb",200);
p.render("pieCanvas", "Pie Graph")

</script>

「Jan」に配列「earn[0]」を使用する場合、app.js ファイルから配列を呼び出すにはどうすればよいですか? 値「100」を「earn[0]」に変更すると、円グラフが表示されなくなります。ヘルプ?

4

2 に答える 2

0

earnテキストフィールドを変更しても、それが求めている場合、配列は動的に更新されません。texfields がいつ変更イベントを発生させるかをリッスンし、そのイベントをキャプチャして、新しい値を取得する必要があります。これで、円グラフを更新できます。

誰かがテックスフィールドの値を変更するたびにグラフを更新するようにするには、次のようにする必要があります。

/* app.js */
var textfield1 = Ti.UI.createTextField({
    value:' ',
    keyboardType: Titanium.UI.KEYBOARD_NUMBER_PAD, 
});
/* This is the important part */
textfield1.addEventListener('change', function(e) {
    var earn = [textfield1.value, textfield2.value];
    webview.evalJS('createPie(' + JSON.stringify(earn) +');');
});

var textfield2 = Ti.UI.createTextField({
    value:' ',
    keyboardType: Titanium.UI.KEYBOARD_NUMBER_PAD, 
});
/* This is the important part */
textfield2.addEventListener('change', function(e) {
    var earn = [textfield1.value, textfield2.value];
    // DO this
    webview.evalJS('createPie(' + JSON.stringify(earn) +');');
});

var webview = Titanium.UI.createWebView({
 url: 'chart.htm'
});

// Add views
win.add(textfield1);
win.add(textfield2);
win.add(webview);

そしてあなたのHTMLで(私はMohitのよく練られたHTMLから取ってきました):

<script type="text/javascript" src="wz_jsgraphics.js"></script>
<script type="text/javascript" src="pie.js"></script>

<div id="pieCanvas" style="overflow: auto; position:relative;height:350px;width:380px;"></div>

<script type="text/javascript">
function createPie(arr) {
    var earn = eval(arr); // convert from JSON string to JS, alternatively use JSON.parse
    var p = new pie();
    p.add("Jan", earn[0]);
    p.add("Feb", earn[1]);
    p.render("pieCanvas", "Pie Graph");
}
</script>

これで骨ができました。 createPie() 関数をいじる必要があるかもしれません。Mohit が送信したリンクを確認してください。詳細がそこに書かれています。

于 2013-04-24T14:18:22.370 に答える