Twitter Login Dialog error
Hallo, ich habe Twitter in meine Android-Anwendung integriert. Wenn ich versuche, mich bei Twitter anzumelden, sollte dort zum ersten Mal ein Anmeldedialog angezeigt werden. Der Dialog wird ordnungsgemäß angezeigt und ich kann mich bei Twitter anmelden Beim zweiten Versuch, mich anzumelden, wird ein leerer Twitter-Dialog angezeigt. Nachfolgend ist mein Code für TwitterDialog-Cals aufgeführt. Wie kann ich dieses Problem lösen. Bitte geben Sie mir eine Lösung.
<code>public class TwitterDialog extends Dialog { static final float[] DIMENSIONS_LANDSCAPE = { 460, 260 }; static final float[] DIMENSIONS_PORTRAIT = { 280, 420 }; static final FrameLayout.LayoutParams FILL = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT); static final int MARGIN = 4; static final int PADDING = 2; private String mUrl; private TwDialogListener mListener; private ProgressDialog mSpinner; private WebView mWebView; private LinearLayout mContent; private TextView mTitle; private static final String TAG = "Twitter-WebView"; public TwitterDialog(Context context, String url, TwDialogListener listener) { super(context); mUrl = url; mListener = listener; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSpinner = new ProgressDialog(getContext()); mSpinner.requestWindowFeature(Window.FEATURE_NO_TITLE); mSpinner.setMessage("Loading..."); mContent = new LinearLayout(getContext()); mContent.setOrientation(LinearLayout.VERTICAL); setUpTitle(); setUpWebView(); Display display = getWindow().getWindowManager().getDefaultDisplay(); final float scale = getContext().getResources().getDisplayMetrics().density; float[] dimensions = (display.getWidth() < display.getHeight()) ? DIMENSIONS_PORTRAIT: DIMENSIONS_LANDSCAPE;addContentView(mContent, new FrameLayout.LayoutParams((int) (dimensions[0] * scale + 0.5f), (int) (dimensions[1]* scale + 0.5f))); } private void setUpTitle() { requestWindowFeature(Window.FEATURE_NO_TITLE); Drawable icon = getContext().getResources().getDrawable(R.drawable.twitter_icon); mTitle = new TextView(getContext()); mTitle.setText("Twitter"); mTitle.setTextColor(Color.WHITE); mTitle.setTypeface(Typeface.DEFAULT_BOLD); mTitle.setBackgroundColor(0xFFbbd7e9); mTitle.setPadding(MARGIN + PADDING, MARGIN, MARGIN, MARGIN); mTitle.setCompoundDrawablePadding(MARGIN + PADDING); mTitle.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); mContent.addView(mTitle); } private void setUpWebView() { mWebView = new WebView(getContext()); mWebView.setVerticalScrollBarEnabled(false); mWebView.setHorizontalScrollBarEnabled(false); mWebView.setWebViewClient(new TwitterWebViewClient()); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl(mUrl); mWebView.setLayoutParams(FILL); //mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); mContent.addView(mWebView); } private class TwitterWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Constants.LOG)Log.d(TAG, "Redirecting URL " + url); if (url.startsWith(TwitterApp.CALLBACK_URL)) { mListener.onComplete(url); //mWebView.getSettings().setAppCacheEnabled(false); //mWebView.refreshDrawableState(); if (Constants.LOG)Log.d(TAG, "Clearing chache"); TwitterDialog.this.dismiss(); return true; } else if (url.startsWith("authorize")) { return false; } return true; } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { if (Constants.LOG)Log.d(TAG, "Page error: " + description); super.onReceivedError(view, errorCode, description, failingUrl); mListener.onError(description); TwitterDialog.this.dismiss(); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { if(Constants.LOG)Log.d(TAG, "Loading URL: " + url); super.onPageStarted(view, url, favicon); mSpinner.show(); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); String title = mWebView.getTitle(); if (title != null && title.length() > 0) { mTitle.setText(title); } mSpinner.dismiss(); } } }`` </code>