2011-06-20 11 views
2

は、これは私が何をしようとしていますものです:チタン

_tableView.data[0].rows[selectedPosY].children[selectedPosX].imageId = tempImageId;  
_tableView.data[0].rows[selectedPosY].children[selectedPosX].image = tempImageUrl; 
Titanium.API.info("imageIdSelected:" + 
_tableView.data[0].rows[selectedPosY].children[selectedPosX].imageId + "imageSelected:" + 
_tableView.data[0].rows[selectedPosY].children[selectedPosX].image); 

更新はデータ上で行われ、それが欠けているもの、UIテーブルに反映されないのですか?

私もHow can I refresh my TableView in titanium? & How to resolve Titanium TableView display problem?ごとに下記やってみましたが、それはUIテーブル _tableView.setData(_tableView.data)にリフレッシュされていません。 win.add(_tableView);

答えて

2

Titanium.UI.TableViewを更新/再読み込みする唯一の方法は、更新されたデータのコピーを(ロジックごとに)取得し、 'setData'を使用してTableViewでリセットすることです。私の例では、_tableView.dataが更新されているので(ロギングステートメントで見ることができます)、javascript配列のコピー機能を使用してコピーできます。

var data2 =_tableView.data.slice(0); 
_tableView.setData(data2); 

上記の知識で私は自分のコードを再構成しましたが、私はこの正確なコードを使用していませんが、同様のロジックです。しかし、全体的には、テーブルを更新するこの方法は非常に魅力的ではないようですが、これを処理するより良い方法があれば投稿してください。

0

を使用すると、なぜ_tableView.data[0].rowsを実行してから_tableView.dataを送信するのですか?

_tableView.dataは、行/セクションの配列である必要があります。 Ti.UI.tableViewオブジェクトにはdataプロパティがありますが、データは次のように構成されていなければなりません。

_tableView.data = [ 
    {title:"Row 1"}, 
    {title:"Row 2"} 
]; 

あなたがそのようにやっているとき.rowsあなたが.rowsを使用しているか、あなたは何を達成するのでしょうか?私は肯定的ではありませんが、私は_tableView.dataはどちらでもないと思うか、setDataにしようとすると無効です。

+0

私はコードを動作させるためにさまざまなことを試みてきました。上のコードでは、 'Titanium.API.info ..'というステートメントはデータの更新を示していますが、_tableViewは更新されません。 TableView内の特定の行/セルを更新し、UIのテーブルを更新するにはどうすればよいですか?あなたはその例を挙げることができますか? –