当我按工具栏中的向后箭头获取空对象引用时

尚蒂

我正在尝试将数据从第二个活动发送到第三个活动,当我单击工具返回中的向后箭头时,它工作正常,我收到此错误,请任何人帮助我如何解决此错误

这是我的第二个活动代码

pos=Integer.parseInt((getIntent().getExtras()).getString("pos"));


    webviewurl=NewsMainFregmant_List.listData.get(pos).getNewsSourceUrl();

    webviewurl2=NewsMainFregmant_List.listData.get(pos).getNewsSourceUrl2();

news_site_link_one=(TextView)findViewById(R.id.news_SourceLink_text_one_t_webview);
news_site_like_two=   (TextView)findViewById(R.id.news_SourceLink_text_two_t_webview);

  news_site_link_one.setOnClickListener(new View.OnClickListener() {
      @Override
       public void onClick(View v) {
        Intent webviewintent = new Intent(getApplicationContext(), News_WebView.class);
       webviewintent.putExtra("webviewurl", webviewurl);
         startActivity(webviewintent);

    }
   });

在我的网络视图下方

 String SourceURL;
WebView webview;
final Activity activity = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);




    setContentView(R.layout.activity_news__web_view);
    Intent intent =getIntent();


        SourceURL =  intent.getStringExtra("webviewurl");
    webview=(WebView)findViewById(R.id.webView);
    webview.getSettings().setJavaScriptEnabled(true);




    webview.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            activity.setTitle("Loading...");
            activity.setProgress(progress * 100);

            if(progress == 100)
                activity.setTitle(R.string.app_name);
        }
    });

    webview.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            // Handle the error
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });

    webview.loadUrl(SourceURL);
}
@Override
public void onBackPressed() {
    if (webview.canGoBack()) {
        webview.goBack();
    } else {
        super.onBackPressed();
        overridePendingTransition(R.transition.slide_in_down, R.transition.slide_out_down);

    }
}

在我的错误代码下面

Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
蜜Bus

这意味着这一行:

pos=Integer.parseInt((getIntent().getExtras()).getString("pos"));

指向无,getString(“ pos”)不存在。

可能有很多原因。当您按回工具栏时,可能没有用Extras满足意图。

您可以做一个空检查:

if(getIntent().getExtras() != null)
   pos=Integer.parseInt((getIntent().getExtras()).getString("pos"));

但是最好在您的工具栏上将其设置为ClickListener,并确保它不为null。

顺便一提 :

Integer.parseInt((getIntent().getExtras()).getString("pos"))   

这不是一个好习惯。如果要从意图中获取单个Integer,请使用:

getIntent().getIntExtra("pos", 0); // will be 0 if null

您将它放在这样的意图中:

intent.putExtra("pos", 666);

现在,您的意图“额外”位置被分配了值666。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android工具栏:如果按下向后箭头,如何返回上一个活动

当我按下工具栏时,Viewpager 被向上推

以编程方式单击工具栏中的“后退箭头”

工具栏中的android微调框上的翻转箭头

在片段中获取工具栏

获取工具栏中的MenuItem的ID

为什么当我想在工具栏的布局中访问TextView时将其变为null

按显示顺序获取工具栏列表选项

更改工具栏的后退箭头颜色

在工具栏上显示后退箭头

当我在空的 useEffect 中引用时,在反应中植入的计数器的值为 0

如何让我的搜索栏覆盖工具栏中的标题?

当我将FragmentPagerAdapter和ViewPager一起使用时,为什么在活动中看到两个工具栏?

在片段中引用工具栏时发生NullPointerException

我的工具栏菜单出现在片段工具栏中

片段中的工具栏不断抛出空指针异常

在工具栏和布局中获取高度

获取CKEitor中单击的工具栏按钮的状态

无法获取工具栏以显示在Node Webkit中

在UIPickerView Swift中获取可用的工具栏

我的工具栏没有显示在 CardView 中

工具栏正在NavigationView中删除我的后退按钮

我可以在XAML中设置工具栏项吗?

我可以在grapesjs中更改工具栏语言吗?

我在工具栏中有很多操作,并尝试使在PyQt5中按下的操作的字体变为粗体

如何处理工具栏中SearchView中的后退箭头

Android Studio中RecyclerView不会显示我的数据当我在我的`layout.xml`文件中添加工具栏

工具栏中的TabLayout

IContributionItem 中的工具栏