Android コードの次のブロックは、javascript 関数から戻り値を取得し、それをクラス変数に割り当てようとします。その後、別のクラスをインスタンス化するときにこのクラス変数を使用します。
これは私のコードです:
//class variables
String innerElementNum = "0";
private final Object lock = new Object();
MyAdapter myAdapter;
synchronized (lock) {
try {
webView.loadUrl("javascript:inner()");
while (responseFromJS.equals(""))
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
(!responseFromJS.equals("empty"))
innerElementNum = responseFromJS;
}
responseFromJS = "";
}
myAdapter = new MyAdapter(EditorActivity.this);
MyAdapter クラスでは、次のように変数「innerElementNum」を使用します。
public class MyAdapter extends BaseAdapter {
Context context;
int itemsNum = Integer.parseInt(innerElementNum);
String[] itemsArray = new String[itemsNum];
MyAdapter(Context c){
context = c;
if (itemsNum > 0) {
for (int i=0 ; i<itemsNum ; i++) {
int j = i+1;
itemsArray[i] = j+"";
}
}
}
....... etc
}
私の問題は同期です。 MyAdapter クラスをインスタンス化するとき、「innerElementNum」変数には「未定義」の値があります。つまり、クラスをインスタンス化するとき、変数にはまだ正しい値がありません。
どんな助けでも大歓迎です。前もって感謝します