0

我有 2 个活动调用 1 个活动,例如

  Activity 1
      Activity a
  Activity 2
      Activity a

我想从 Activity a 返回到它被调用的任何活动。

目前我收到空指针异常,说活动 a 没有定义父活动。

活动一和二如下

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

//         TextView urlTv = (TextView) view.findViewById(R.id.url);     
//         String url = urlTv.getText().toString();
           String url = projectsList.get(position).get("url");             
           //Intent intent = new Intent(Intent.ACTION_VIEW);
           Intent intent = new Intent(getApplicationContext(), LaunchReadMoreActivity.class);
           intent.putExtra("url", url);
           //intent.setData(Uri.parse(url));
           startActivity(intent);

          }

        });

活动 A:公共类 LaunchReadMoreActivity 扩展 Activity{

WebView myWebView;

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.read_screen);

    Intent intent = getIntent();

    String url = intent.getStringExtra("url");  

    WebView myWebView = (WebView) findViewById(R.id.webView);
    WebSettings webSettings = myWebView.getSettings();
    //webSettings.setJavaScriptEnabled(true);
    webSettings.setBuiltInZoomControls(true);


    webSettings.setLoadWithOverviewMode(true);
    webSettings.setUseWideViewPort(true);
    myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    myWebView.setScrollbarFadingEnabled(false);

    try {
        // load the url
        myWebView.loadUrl(url);
    } catch (Exception e) {
        e.printStackTrace();
    }

//  //myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
//  myWebView.setInitialScale(50);
//  //myWebView.loadUrl(url);
//  myWebView.loadUrl(url);
//      

    setupActionBar();

}

    setupActionBar();
4

2 回答 2

1

通过以下代码从 Activity_1 和 Activity_2 调用 Activity_a,

Intent intent = new Intent(this, Activity_a.class); 开始活动(意图);// 确保不要完成当前活动,即不要在活动 1 或 2 中使用 finish() 方法;然后在 Activity_a 中覆盖该方法,

public void onBackPressed() {
        super.onBackPressed();
        getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        Activity_a.this.finish();
    }

跳此代码将帮助您解决问题。

于 2013-06-11T12:02:34.727 回答
1

启动 Activity a 时,不要在 Activity A 和 Activity B 中调用 finish() 方法

于 2013-06-11T12:00:09.730 回答