0

Is it possible to bind a List<object> to a ListView and use more than one property as display members?

The object contains in total 3 properties:

String name;
String email;
Int cost;

Please refrain from using for/foreach/while loops as I'm looking for a solution that utilizes databinding.


Phonegap plugin. onActivityResult launched before ends

I'm developing a phonegap plugin to launch an activity. I start the activity with the method "startActivityForResult", but the method "onActivityResult" is triggered before the activity ends so I can't manage the results of the activity.

Here's the plugin's code:

package com.phonegap.plugin.escanerDocumentos;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.visualtaggingservices.scandoc.ScanDocConstants;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;

public class EscanerDocumentos extends Plugin {

private static final int SCANDOC_REQUEST_RESULT = 1;    
public static final String PATH_ME="path_mem_ext";
public static final String PATH_MI="path_mem_int";
public String strFilename="inicializado";
private  String callback=null ;
//public static final String COMPRESS="compress";
final static String TARGET_BASE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/";


@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
    this.callback = callbackId;


    if (action.equalsIgnoreCase("EscanerDocumentos")) {
    Escanea();
    }
    PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
    r.setKeepCallback(true);
    return r;
}

public EscanerDocumentos() {
}



private void Escanea() {
    Uri uri = Uri.parse("scandoc://com.visualtaggingservices.scandoc");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    intent.putExtra(ScanDocConstants.SCANDOC_KEY_PICTURE_WIDTH, ScanDocConstants.PICTURE_WIDTH);
    intent.putExtra(ScanDocConstants.SCANDOC_KEY_PICTURE_HEIGHT, ScanDocConstants.PICTURE_HEIGHT);
    this.cordova.startActivityForResult((Plugin)this,intent,SCANDOC_REQUEST_RESULT);

}


// ===================================================================
// ON_ACTIVITY_RESULT
// -------------------------------------------------------------------
/**
 * Funcion que obtiene el resultado de la Actividad.
 * @param requestCode   Codigo de la actividad que finaliza.
 * @param resultCode    Resultado de la actividad que finaliza.
 * @param data          Datos de la actividad que finaliza.
 */
// ===================================================================
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    Log.d("EscanerDocumentos", "onActivityResult");
    if (requestCode == SCANDOC_REQUEST_RESULT)
    {
        if (resultCode == Activity.RESULT_OK)
        {
            Bundle bundle = data.getExtras();
             strFilename = bundle.getString(ScanDocConstants.SCANDOC_KEY_FILENAME);
             JSONObject obj = new JSONObject();
                try {
                    obj.put("filename", bundle.getString(ScanDocConstants.SCANDOC_KEY_FILENAME));
                    obj.put("signed", bundle.getString(ScanDocConstants.SCANDOC_KEY_SIGNED));
                }
                catch(JSONException e) {
                    Log.e("EscanerDocumentos", "Error al devolver el resultado");
                }
                Log.d("EscanerDocumentos", "Devolvemos el pluginResult");
                this.success(new PluginResult(PluginResult.Status.OK, obj), this.callback);
        }
    }
}

}

Thanks for your help!!!

4

3 に答える 3

1

データビューを使用します( WPFを使用している場合はデータバインディングを使用)

于 2013-02-27T16:35:54.167 に答える
0

ゲッターのみでカスタム プロパティを作成し、ゲッターでプロパティを結合する

于 2013-02-27T16:32:31.390 に答える
0

WinForms を使用している場合は、 を使用する代わりに を使用ListViewできますObjectListView。これは、すべてのキャストの問題なしに、そのタイプのコントロールでクラスを保持する簡単な方法です。

ただし、を使用しているListView場合は、それを吸い上げて各項目を個別に追加する必要があります。

于 2013-02-27T16:41:07.617 に答える