Appcelerator钛制tableviewrow rightImage在Android设备上不工作

Appcelerator钛制tableviewrow rightImage在Android设备上不工作,android,android-emulator,titanium,titanium-mobile,appcelerator-mobile,Android,Android Emulator,Titanium,Titanium Mobile,Appcelerator Mobile,我不熟悉钛 我有一个表视图显示一些数据。我在每行添加了一个事件侦听器,以切换检查图像(rightImage)的显示,如下所示: row.addEventListener('click', function(e){ if(e.row.getHasCheck()){ e.row.setHasCheck(false); e.row.rightImage = 'android/images/blank.png'; e.row

我不熟悉钛

我有一个表视图显示一些数据。我在每行添加了一个事件侦听器,以切换检查图像(rightImage)的显示,如下所示:

row.addEventListener('click', function(e){
    if(e.row.getHasCheck()){
            e.row.setHasCheck(false);
            e.row.rightImage = 'android/images/blank.png';
            e.rowData.rightImage = 'android/images/blank.png';
        } else {
            e.row.setHasCheck(true);
            e.row.rightImage = 'android/images/check.png';
            e.rowData.rightImage = 'android/images/check.png';
        }
    });
<android xmlns:android="http://schemas.android.com/apk/res/android">
    <manifest>
        <supports-screens 
            android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:anyDensity="true"
        />
    </manifest>
</android>
  • 图像click.png和blank.png位于文件夹中:project/Resources/android/images(与密度无关)

  • 我尝试了e.row.rightImage和e.rowData.rightImage,因为在其他几个问题中都提到了它们

  • my tiapp.xml中的Android清单如下所示:

    row.addEventListener('click', function(e){
        if(e.row.getHasCheck()){
                e.row.setHasCheck(false);
                e.row.rightImage = 'android/images/blank.png';
                e.rowData.rightImage = 'android/images/blank.png';
            } else {
                e.row.setHasCheck(true);
                e.row.rightImage = 'android/images/check.png';
                e.rowData.rightImage = 'android/images/check.png';
            }
        });
    
    <android xmlns:android="http://schemas.android.com/apk/res/android">
        <manifest>
            <supports-screens 
                android:smallScreens="true"
                android:normalScreens="true"
                android:largeScreens="true"
                android:anyDensity="true"
            />
        </manifest>
    </android>
    
    没有异常、没有警告、错误等

问题:切换(勾选/取消勾选)在Android emulator上运行得非常好(实际上,它在emulator上开箱即用,即使没有自定义图像),但在任何情况下都无法在设备上运行(无法显示行.rightImage)


非常感谢您的帮助。

尝试使用此示例代码更改行的正确图像

Ti.UI.backgroundColor = 'white';
var win = Ti.UI.createWindow();

var tableData = [];

for(var index = 1; index<= 10; index++)
{
    var row = Titanium.UI.createTableViewRow({
        title       : 'row '+ index, 
        rightImage  : 'images/blue.png'
    });


    tableData.push(row);
}
var table = Ti.UI.createTableView({
    data: tableData
});

table.addEventListener('click', function(e){
        image = 'images/black.png';
        e.source.setRightImage(image);
});
win.add(table);

win.open();
Ti.UI.backgroundColor='white';
var win=Ti.UI.createWindow();
var tableData=[];

对于(var-index=1;index1),我能够使它在以后工作

在for循环中

var row = Titanium.UI.createTableViewRow({
    //I was dealing with contacts
    title : contacts[i].fullName + ", "+ contacts[i].phone.mobile[j], 
    rightImage : 'images/blank.png'
    });
row.addEventListener('click', function(e) {
    if(e.row.getHasCheck()){
        e.row.setHasCheck(false);
        e.row.setRightImage('images/blank.png');            
    } else {
        e.row.setHasCheck(true);
        e.row.setRightImage('images/check.png');            
    }
});
tableData.push(row);

除了图像路径,没有太多的更改。

感谢您的努力和响应,Anand。我能够在eventlistener附加到行本身的情况下使其工作。将eventlistener附加到表视图不是更容易吗?我认为将eventlistener附加到行或表之间没有多大区别因为从一行到另一行的气泡实际上是一样的均匀。你能回答这个问题吗: