我正在创建一个使用 SAML 和 OAUTH2 的登录名。要获取登录 token ,我需要打开一个 Web View ,用户可以在其中输入他的登录凭据并推送登录。当他完成此操作后,它会重定向到带有 SAML 响应的页面。我需要能够关闭收到此回复时创建的 WebView 。现在的问题是我无法关闭 WebView 并恢复 Activity 布局。这是我用来创建 Activity 并显示 Web View 的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
final WebView webview = new WebView(this);
Button saxoLogin = (Button) findViewById(R.id.saxologin);
theLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Call private method
setContentView(webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.postUrl(url, SAMLreq.getBytes());
debug.append("does this even work?");
我尝试使用:webview.setVisibility()
方法并将其设置为不可见。
我还尝试使用setContentView(R.layout.activity_login)
但第一个只是使查看者不可见,并且没有恢复 Activity 布局,并且梯子生成并出错。
最佳答案
不要调用 setContentView 两次。您应该将您的 WebView 放入 Activity_login 文件中,例如:
<WebView android:id="@+id/webview"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:visibility="invisible"/>
当点击登录按钮时,即可执行您的操作。另外不要忘记设置 webview.setVisibility(View.VISIBLE) 的可见性。
希望对你有帮助
关于java - 在 android 中将 contentView 设置为 Web View 后返回到 Activity contentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631685/