नहीं दिखा रहा है मेरे पास वेब व्यू है और मैं चाहता हूं कि पेज वेबव्यू में लोड हो रहा है, एक्शनबार शो प्रगति में। एप्लिकेशन ऐपकॉमपेट एंड्रॉइड लाइब्रेरी का उपयोग कर रहा है और ऐप का लक्ष्य और संकलन एसडीके संस्करण 21 है। बस वेबव्यू सामान्य रूप से चल रहा है।एक्शनबार प्रगति पट्टी
मुझे लगता है कि विधि setSupportProgress(int progress)
में समस्या है।
मेरा कोड नीचे है।
गतिविधि:
public class AuthActivity extends ActionBarActivity {
private boolean isConfirmationRequired = false;
private Utils utils = new Utils();
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auth);
final String authUrl = "some url";
final WebView authWebView = (WebView) findViewById(R.id.auth_web_view);
authWebView.getSettings().setJavaScriptEnabled(true);
authWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
setTitle(R.string.loading);
setSupportProgress(newProgress * 100);
if (newProgress == 100)
setTitle(R.string.sign_in);
}
});
authWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (!url.equals(authUrl))
isConfirmationRequired = true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
boolean hasUserBrokenAuth = url.equals("some url") ||
url.equals("some url");
boolean isUserAuthorized = url.startsWith("some url" +
"access_token=");
if (hasUserBrokenAuth) {
if (isConfirmationRequired)
utils.showConfirmDialog(AuthActivity.this);
else
finish();
} else {
utils.webViewLoadUrlIfInternetIsConnected(AuthActivity.this, authWebView, url);
if (isUserAuthorized)
saveAuthData(url);
}
return true;
}
});
utils.webViewLoadUrlIfInternetIsConnected(this, authWebView, authUrl);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isConfirmationRequired) {
utils.showConfirmDialog(this);
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
if (isConfirmationRequired) {
utils.showConfirmDialog(this);
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
private void saveAuthData(String url) {
String accessToken = utils.extractPattern(url, "access_token=(.*?)&");
String userId = utils.extractPattern(url, "user_id=(\\d*)");
}
utils.webViewLoadUrlIfInternetIsConnected:
public void webViewLoadUrlIfInternetIsConnected(final Context context, final WebView webView,
final String url) {
if (isInternetConnected(context)) {
webView.loadUrl(url);
} else {
showSnackbarInternetDisconnected(context, new ActionClickListener() {
@Override
public void onActionClicked(Snackbar snackbar) {
snackbar.dismiss();
webViewLoadUrlIfInternetIsConnected(context, webView, url);
}
});
}
}
एक अच्छा समाधान, धन्यवाद। कस्टम ड्रायरेबल के बजाय, मैंने प्रोग्रेसबार लेआउट में स्टाइल = "? एंड्रॉइड: एटीआर/एंड्रॉइड: प्रोग्रेसबार स्टाइलस्माल" जोड़ा। – Yar
मुझे पता है, लेकिन मैंने स्पष्ट रूप से कस्टम एंड्रॉइड संस्करण पर एक ही होने के लिए कस्टम ड्रॉइंग का उपयोग किया। – David