Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从SQlite中提取Lat Long并显示在webview上_Javascript_Java_Android_Sqlite_Leaflet - Fatal编程技术网

Javascript 从SQlite中提取Lat Long并显示在webview上

Javascript 从SQlite中提取Lat Long并显示在webview上,javascript,java,android,sqlite,leaflet,Javascript,Java,Android,Sqlite,Leaflet,目前,我希望通过从javascript访问java方法在webview上显示所有lat long值,但它没有显示lat long值 请帮我把它弄好 多谢各位 这是我的WebviewActivity.java static final String TAG = "JavascriptDataDemo"; //double[] data = new double[] {42.6, 24, 17, 15.4}; DataHelper myDB=new DataHelper(this); /** T

目前,我希望通过从javascript访问java方法在webview上显示所有lat long值,但它没有显示lat long值

请帮我把它弄好

多谢各位

这是我的WebviewActivity.java

static final String TAG = "JavascriptDataDemo";

//double[] data = new double[] {42.6, 24, 17, 15.4};
DataHelper myDB=new DataHelper(this);

/** This passes our data out to the JS */
@JavascriptInterface
public String getData() {
    myDB.insert(16.5048, 80.6338);
    myDB.insert(16.5024,80.6432);
    myDB.insert(16.512,80.6216);
    myDB.insert(16.5124,80.6219);

    Cursor cursor = myDB.fetchAllCountries();
    double[] array = new double[cursor.getCount()];
    double[] array1=new double[cursor.getCount()];
    int i = 0;
    if (cursor.moveToFirst()) {
        do {
            double data = cursor.getDouble(cursor.getColumnIndex("lat"));
            double data1=cursor.getDouble(cursor.getColumnIndex("longt"));
            array[i] = data;
            array1[i]=data1;
            i++;

        } while (cursor.moveToNext());

    }

    Log.d(TAG, "getData() called");
    return a1dToJson(array,array1).toString();
}

/** Allow the JavaScript to pass some data in to us.
@JavascriptInterface
public void setData(String newData) throws JSONException {
    Log.d(TAG, "MainActivity.setData()");
    JSONArray streamer = new JSONArray(newData);
    data = new double[streamer.length()];
    for (int i = 0; i < streamer.length(); i++) {
        Double n = streamer.getDouble(i);
        data[i] = n;
    }
}*/

private Activity activity;

public Context getActivity() {
    return activity;
}

public void setActivity(Activity app) {
    this.activity = app;
}

@JavascriptInterface
public void finish() {
    Log.d(TAG, "ArrayApplication.finish()");
    activity.finish();
}

/** Sorry for not using the standard org.json.JSONArray but even in Android 4.2 it lacks
 * the JSONArray(Object[]) constructor, making it too painful to use.
 */
private String a1dToJson(double[] data,double[] data1) {
    StringBuffer sb = new StringBuffer();
    sb.append("[");
    for (int i = 0,j=0; (i < data.length) && (j<data1.length); i++,j++) {
        double d = data[i];
        double s=data1[j];
        if (i > 0 && j>0) {
            sb.append("[");
            sb.append(d);
            sb.append(",");
            sb.append(s);
            sb.append("]");
        }
    }
    sb.append("]");
    return sb.toString();
}
}
static final String TAG=“JavascriptDataDemo”;
//double[]数据=新的double[]{42.6,24,17,15.4};
DataHelper myDB=新的DataHelper(此);
/**这会将我们的数据传递给JS*/
@JavascriptInterface
公共字符串getData(){
myDB.insert(16.5048,80.6338);
myDB.insert(16.5024,80.6432);
myDB.insert(16.512,80.6216);
myDB.插入(16.5124,80.6219);
Cursor Cursor=myDB.fetchAllCountries();
double[]数组=新的double[cursor.getCount()];
double[]array1=新的double[cursor.getCount()];
int i=0;
if(cursor.moveToFirst()){
做{
double data=cursor.getDouble(cursor.getColumnIndex(“lat”));
double data1=cursor.getDouble(cursor.getColumnIndex(“lont”));
数组[i]=数据;
阵列1[i]=数据1;
i++;
}while(cursor.moveToNext());
}
d(标记“getData()已调用”);
返回a1dToJson(数组,array1.toString();
}
/**允许JavaScript向我们传递一些数据。
@JavascriptInterface
公共void setData(字符串newData)抛出JSONException{
Log.d(标记“MainActivity.setData()”);
JSONArray拖缆=新JSONArray(新数据);
数据=新的双精度[streamer.length()];
对于(int i=0;i0){
某人加上(“[”);
某人(d);
某人加上(“,”);
某人追加;
某人加上(“]”);
}
}
某人加上(“]”);
使某人返回字符串();
}
}
my index.html,它访问android活动方法以显示数据

<html>
<head>

<script> 
    var showData = function() {
        var data = android.getData();
        data = JSON.parse(data);
        window.alert("Hello! Data are: " + data + "; first = " + data[0]);
    }

 </script>

 </head>

 <body>


 <input type="button" value="Display data" onclick="showData()">

 <input type="button" value="Update data" onclick="setData();">

 <br/>

 <input type="button" value="Done" onclick="android.finish();">

 </body>
 </html>

var showData=函数(){
var data=android.getData();
data=JSON.parse(数据);
window.alert(“你好!数据是:“+Data+””,first=“+Data[0]);
}


我终于得到了答案

DataHelper myDB=new DataHelper(this);


//double[] data = new double[] {42.6, 24, 17, 15.4};

/** This passes our data out to the JS */
@JavascriptInterface
public String getData() {

    myDB.insert(16.5048, 80.6338);
    myDB.insert(16.5024,80.6432);
    myDB.insert(16.512,80.6216);
    myDB.insert(16.5124,80.6219);

    Cursor cursor=myDB.fetchAllCountries();
    double[] arr=new double[cursor.getCount()];
    int i=0;

    if(cursor.moveToFirst())
    {
        do {
            double data=cursor.getDouble(cursor.getColumnIndex("lat"));
           arr[i]=data;
            i++;

        }while (cursor.moveToNext());

    }




    Log.d(TAG, "getData() called");
    return a1dToJson(arr).toString();
}


@JavascriptInterface
public String getLong() {

    Cursor cursor1=myDB.fetchAllCountries();
    double[] arr1=new double[cursor1.getCount()];
    int i=0;

    if(cursor1.moveToFirst())
    {
        do {
            double data1=cursor1.getDouble(cursor1.getColumnIndex("longt"));
            arr1[i]=data1;
            i++;

        }while (cursor1.moveToNext());

    }




    Log.d(TAG, "getData() called");
    return a1dToJson(arr1).toString();
}


private Activity activity;

public Context getActivity() {
    return activity;
}

public void setActivity(Activity app) {
    this.activity = app;
}

@JavascriptInterface
public void finish() {
    Log.d(TAG, "ArrayApplication.finish()");
    activity.finish();
}

/** Sorry for not using the standard org.json.JSONArray but even in Android 4.2 it lacks
 * the JSONArray(Object[]) constructor, making it too painful to use.
 */
private String a1dToJson(double[] data) {
    StringBuffer sb = new StringBuffer();
    sb.append("[");
    for (int i = 0; i < data.length; i++) {
        double d = data[i];
        if (i > 0)
            sb.append(",");
        sb.append(d);
    }
    sb.append("]");
    return sb.toString();
}
DataHelper myDB=新的DataHelper(这个);
//double[]数据=新的double[]{42.6,24,17,15.4};
/**这会将我们的数据传递给JS*/
@JavascriptInterface
公共字符串getData(){
myDB.insert(16.5048,80.6338);
myDB.insert(16.5024,80.6432);
myDB.insert(16.512,80.6216);
myDB.插入(16.5124,80.6219);
Cursor Cursor=myDB.fetchAllCountries();
double[]arr=newdouble[cursor.getCount()];
int i=0;
if(cursor.moveToFirst())
{
做{
double data=cursor.getDouble(cursor.getColumnIndex(“lat”));
arr[i]=数据;
i++;
}while(cursor.moveToNext());
}
d(标记“getData()已调用”);
返回a1dToJson(arr.toString();
}
@JavascriptInterface
公共字符串getLong(){
游标cursor1=myDB.fetchAllCountries();
double[]arr1=新的double[cursor1.getCount()];
int i=0;
if(cursor1.moveToFirst())
{
做{
double data1=cursor1.getDouble(cursor1.getColumnIndex(“lont”));
arr1[i]=data1;
i++;
}while(cursor1.moveToNext());
}
d(标记“getData()已调用”);
返回a1dToJson(arr1.toString();
}
私人活动;
公共上下文getActivity(){
返回活动;
}
公共活动(活动应用程序){
this.activity=app;
}
@JavascriptInterface
公共空间整理(){
Log.d(标记“arrayaapplication.finish()”);
activity.finish();
}
/**很抱歉没有使用标准的org.json.JSONArray,但即使在Android 4.2中,它也缺少
*JSONArray(Object[])构造函数,使用起来太麻烦了。
*/
专用字符串a1dToJson(双[]数据){
StringBuffer sb=新的StringBuffer();
某人加上(“[”);
对于(int i=0;i0)
某人加上(“,”);
某人(d);
}
某人加上(“]”);
使某人返回字符串();
}
javascript文件是

<html>
<head>

<script>
    var showData = function() {
        var data = android.getData();
        data=JSON.parse(data);
         var data1 = android.getLong();
        data1=JSON.parse(data1);
        window.alert("Hello! Data are: " + data );
        window.alert("Hello! Data are: " + data1 );
    }

 </script>

   </head>

 <body>

    <input type="button" value="Display data" onclick="showData()">


    <input type="button" value="Done" onclick="android.finish();">

     </body>
      </html>

var showData=函数(){
var data=android.getData();
data=JSON.parse(数据);
var data1=android.getLong();
data1=JSON.parse(data1);
window.alert(“你好!数据是:“+Data”);
window.alert(“你好!数据为:+data1”);
}

我终于得到了答案

DataHelper myDB=new DataHelper(this);


//double[] data = new double[] {42.6, 24, 17, 15.4};

/** This passes our data out to the JS */
@JavascriptInterface
public String getData() {

    myDB.insert(16.5048, 80.6338);
    myDB.insert(16.5024,80.6432);
    myDB.insert(16.512,80.6216);
    myDB.insert(16.5124,80.6219);

    Cursor cursor=myDB.fetchAllCountries();
    double[] arr=new double[cursor.getCount()];
    int i=0;

    if(cursor.moveToFirst())
    {
        do {
            double data=cursor.getDouble(cursor.getColumnIndex("lat"));
           arr[i]=data;
            i++;

        }while (cursor.moveToNext());

    }




    Log.d(TAG, "getData() called");
    return a1dToJson(arr).toString();
}


@JavascriptInterface
public String getLong() {

    Cursor cursor1=myDB.fetchAllCountries();
    double[] arr1=new double[cursor1.getCount()];
    int i=0;

    if(cursor1.moveToFirst())
    {
        do {
            double data1=cursor1.getDouble(cursor1.getColumnIndex("longt"));
            arr1[i]=data1;
            i++;

        }while (cursor1.moveToNext());

    }




    Log.d(TAG, "getData() called");
    return a1dToJson(arr1).toString();
}


private Activity activity;

public Context getActivity() {
    return activity;
}

public void setActivity(Activity app) {
    this.activity = app;
}

@JavascriptInterface
public void finish() {
    Log.d(TAG, "ArrayApplication.finish()");
    activity.finish();
}

/** Sorry for not using the standard org.json.JSONArray but even in Android 4.2 it lacks
 * the JSONArray(Object[]) constructor, making it too painful to use.
 */
private String a1dToJson(double[] data) {
    StringBuffer sb = new StringBuffer();
    sb.append("[");
    for (int i = 0; i < data.length; i++) {
        double d = data[i];
        if (i > 0)
            sb.append(",");
        sb.append(d);
    }
    sb.append("]");
    return sb.toString();
}
DataHelper myDB=新的DataHelper(这个);
//double[]数据=新的double[]{42.6,24,17,15.4};
/**这会将我们的数据传递给JS*/
@JavascriptInterface
公共字符串getData(){
myDB.insert(16.5048,80.6338);
myDB.insert(16.5024,80.6432);
myDB.insert(16.512,80.6216);
myDB.插入(16.5124,80.6219);
Cursor Cursor=myDB.fetchAllCountries();
double[]arr=newdouble[cursor.getCount()];
int i=0;
if(cursor.moveToFirst())
{
做{
double data=cursor.getDouble(cursor.getColumnIndex(“lat”));
arr[i]=数据;
i++;
}while(cursor.moveToNext());
}
d(标记“getData()已调用”);
返回a1dToJson(arr.toString();
}
@JavascriptInterface
公共字符串getLong(){
游标cursor1=myDB.fetchAllCountries();
double[]arr1=新的double[cursor1.getCount()];
int i=0;
if(cursor1.moveToFirst())
{
做{
双精度数据1=cursor1.getDou