如何实现扩展WebView类的“onActivityResult”

时间:2022-01-02 19:50:22

I have an Activity and it extends WebView, how can I get resultCode when I Implement (Activity).getContext().startActivityForResult(STRING, 1); ?

我有一个Activity并且它扩展了WebView,我怎样才能在实现时获得resultCode(Activity).getContext()。startActivityForResult(STRING,1); ?

I tried and failed to implement onActivityResult(), How can I do that? In normal Activity is easy to @Override the method onActivityResult().

我试过并且未能实现onActivityResult(),我该怎么做?在正常的Activity中很容易@Override方法onActivityResult()。

thanks

1 个解决方案

#1


0  

I might have misunderstood your question, but I don't think you should extend WebView to use directly as your Activity. Try something like this instead:

我可能误解了你的问题,但我认为你不应该扩展WebView直接用作你的Activity。尝试这样的事情:

public class MyActivity extends Activity {    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mWebView = new MyWebView(this);
        setContentView(mWebView);
    }

    public class MyWebView extends WebView {
        public void startSomeActivity() {
            /* call startActivityForResult() here */
        }

        /* ... more code ... */
    }

    @Override
    protected void onActivityResult(int request, int result, Intent data) {
        /* handle activity result here */
    }

    /* ... more code ... */
}

Notice that MyActivity is derived from Activity (so you can override onActivityResult() just like usual) and just uses the custom MyWebView (derived from WebView) in the setContentView() call in onCreate().

请注意,MyActivity派生自Activity(因此您可以像往常一样覆盖onActivityResult())并且只是在onCreate()中的setContentView()调用中使用自定义MyWebView(派生自WebView)。

#1


0  

I might have misunderstood your question, but I don't think you should extend WebView to use directly as your Activity. Try something like this instead:

我可能误解了你的问题,但我认为你不应该扩展WebView直接用作你的Activity。尝试这样的事情:

public class MyActivity extends Activity {    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mWebView = new MyWebView(this);
        setContentView(mWebView);
    }

    public class MyWebView extends WebView {
        public void startSomeActivity() {
            /* call startActivityForResult() here */
        }

        /* ... more code ... */
    }

    @Override
    protected void onActivityResult(int request, int result, Intent data) {
        /* handle activity result here */
    }

    /* ... more code ... */
}

Notice that MyActivity is derived from Activity (so you can override onActivityResult() just like usual) and just uses the custom MyWebView (derived from WebView) in the setContentView() call in onCreate().

请注意,MyActivity派生自Activity(因此您可以像往常一样覆盖onActivityResult())并且只是在onCreate()中的setContentView()调用中使用自定义MyWebView(派生自WebView)。