http://example/map.php?cust_id=1&store_id=2,在onclick链接期间获取cust_id&来自url的store_id并将其保存在另一个共享首选项中。我打电话给其他班级的两个id&想要将这两个id发送到其他网址,但是id的值没有上传到该网址,如果仅传递cust_id意味着一切正常,同时传递两个值无法正常工作。对这个概念不熟悉请帮助我。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
CharSequence urlstring1="cust_id";
CharSequence urlstring2="store_id";
String[] details = url.split("[?]");
String[] strdetails =details[1].split("&");
String strcust_id = strdetails[1];
String strstore_id= strdetails[1];
if (url.contains(urlstring1)& url.contains(urlstring2)){
SharedPreferences settings = getActivity().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Customer", strcust_id).putString("Store", strstore_id);
editor.commit();
AboutusFragment fragment2 = new AboutusFragment();
FragmentManager fragmentManager = getFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, fragment2);
fragmentTransaction.commit();
return false;
}else{
return super.shouldOverrideUrlLoading(view, url);
}
}
下一堂课
if(CheckNetwork.isInternetAvailable(getContext().getApplicationContext())) //returns true if internet available
{
SharedPreferences settings = getActivity().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
String strquerystring=settings.getString("Customer","")+settings.getString("Store","");
String strs = "http://example/bookappointment.php?" + strquerystring;
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl(strs);
}
答案 0 :(得分:5)
可能在这里:
String strcust_id = strdetails[1];
String strstore_id= strdetails[1];
导致问题的行,因为为这两个变量分配了strdetails[1]
个相同的值。
而不是使用String.split
从url获取参数。使用android.net.Uri
使用以下名称从URL获取这两个参数:
Uri uriURL=Uri.parse(url);
String strcust_id=uriURL.getQueryParameter("cust_id");
String strstore_id =uriURL.getQueryParameter("store_id");
现在将strcust_id
和strstore_id
值保存在SharedPreferences
中。
并确保在课程中导入android.net.Uri
包。
答案 1 :(得分:1)
你的问题在于以下几行:
String strcust_id = strdetails[1];
String strstore_id= strdetails[1];
两者不应该相同,请尝试使用此
String strcust_id = strdetails[0];
String strstore_id= strdetails[1];
split()
可能会产生问题,最好使用getQueryParameter()
Uri uri=Uri.parse(url);
String cust_id=uri.getQueryParameter("cust_id");
String store_id =uri.getQueryParameter("store_id");