1
我試圖從我的Web視圖中獲取一個在html頁面中單擊表格行時的回調。我的活動如下:Web查看addJavascriptInterface問題
public class LocalizationTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
WebView webView = new WebView(this);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
JavaScriptInterface javaScriptInterface=new JavaScriptInterface(this);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
Vector<Employee> test=new Vector<Employee>();
for (int i=1;i<20;i++){
Employee employee=new Employee();
employee.setId(i);
employee.setName("Norton - "+i);
employee.setAddress("Indiranagar - " +i);
test.add(employee);
}
javaScriptInterface.setDashboardList(test);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:populateData()");
}
});
webView.loadUrl("file:///android_asset/html/test2.html");
linearLayout.addView(webView);
setContentView(linearLayout);
}
}
我的Java腳本的類如下:
public class JavaScriptInterface {
private Context mContext;
private Vector employeeList;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
public void callBack(String toast) {
int index=Integer.parseInt(toast);
Intent intent=new Intent(mContext, SampleActivity.class);
if(employeeList!=null && index<employeeList.size()){
Employee employee=(Employee) employeeList.elementAt(index);
intent.putExtra("value", "1");
intent.putExtra("name", employee.getName());
intent.putExtra("address", employee.getAddress());
}
mContext.startActivity(intent);
}
public void setEmployeeList(Vector employeeList) {
this.employeeList= employeeList;
}
}
回叫工作正常。但是,當我嘗試訪問employeeList從回叫方法列表總是null雖然我設置我的活動類的列表值。我錯過了什麼?有人可以幫我解決這個問題。
謝謝。我真的很尷尬,沒有注意到這一點。 :-) –