当前位置: 首页 > 知识库问答 >
问题:

在第三个活动中使用get intent时出错代码在此处

朱高超
2023-03-14
public class MainActivity3 extends AppCompatActivity {

RadioGroup radioGroup;
RadioButton radioButton1,radioButton2,radioButton3,radioButton4;
Button submit;
TextView tv;
static int score3;
String i;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);


    radioGroup=(RadioGroup)findViewById(R.id.groupid);
    radioButton1=(RadioButton)findViewById(R.id.radio1);
    radioButton2=(RadioButton)findViewById(R.id.radio2);
    radioButton3=(RadioButton)findViewById(R.id.radio3);
    radioButton4=(RadioButton)findViewById(R.id.radio4);
    submit=(Button)findViewById(R.id.submit);
    tv=(TextView)findViewById(R.id.tv);


    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(radioButton3.isChecked())
            {

               Intent intent=getIntent();
               String str = intent.getStringExtra("score2");
               score3=Integer.valueOf(str);
               score3++;


            }
            else
            {

                Toast.makeText(getBaseContext(),"wrong answer",Toast.LENGTH_SHORT).show();
            }
        }
    });
}}

我的错误是:

09-28 17:53:40.131 1648-1648/com。实例古尔马扬。测验E/AndroidRuntime:致命异常:主进程:com。实例古尔马扬。测验,PID:1648Java。lang.NumberFormatException:无效int:在java中为“null”。lang.Integer。java上的invalidit(Integer.java:137)。lang.Integer。java上的parseInt(Integer.java:354)。lang.Integer。java上的parseInt(Integer.java:331)。lang.Integer。com上的valueOf(Integer.java:489)。实例古尔马扬。测验维护活动3美元1美元。android上的onClick(MainActivity3.java:54)。看法看法android上的performClick(View.java:4438)。看法查看$PerformClick。在android上运行(View.java:18422)。操作系统。处理程序。android上的handleCallback(Handler.java:733)。操作系统。处理程序。android上的dispatchMessage(Handler.java:95)。操作系统。活套。android上的loop(Looper.java:136)。应用程序。活动线程。java上的main(ActivityThread.java:5019)。朗。反思。方法java上的invokenactive(本机方法)。朗。反思。方法在com上调用(Method.java:515)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(ZygoteInit.java:779)。Android内部的操作系统。合子体。dalvik的main(ZygoteInit.java:595)。系统原生艺术。主(本机方法)

共有2个答案

田志尚
2023-03-14

必须将字符串转换为整数,并检查getIntent()是否为空,如下所示;

        Intent intent=getIntent();
           if (intent != null){
               String str = intent.getStringExtra("score2");
               score3=Integer.parseInt(str);
               score3++;
           }
祝俊
2023-03-14

确保不要将空字符串或null字符串转换为整数,因为它将引发异常。

  bool hasScore= intent.hasExtra("score2");

  if(hasScore){

      score3 = getIntent().getStringExtra("score2") + "";
      if(!score3.isEmpty()){
         score3=Integer.valueOf(str);
         score3++;
      }

  }
 类似资料:
  • 这里和是数据类型 我的错误从这一行开始:在这方面有人能帮助我吗 错误是“从lambda表达式引用的局部变量必须是final或有效的final”

  • * *我正在使用JSP、JavaServlet和Hibernate开发一个电子商务应用程序。执行此代码时出现以下错误。我得到了这个错误需要帮助调试它**

  • 上面是主题和样式。当我运行应用程序时,显示这个错误。我想也许应该是“theme.appcompat”而不是“Android:theme”,但不确定!

  • 问题内容: 你们有以下问题的解决方法吗? 在注册活动的onDestroy中(当用户按下后退按钮时),我调用一个新活动,以便用户可以输入当天的某些最终生产数据,然后通过电子邮件发送该报告。问题在于,在刚刚开始的活动中,对getIntent的调用返回null,而我必须从那里获取数据。 ================================================== ========

  • 我搜索了所有的互联网网站来修复这个错误,但是我做不到。我只想用两个按钮“是”和“否”创建AlertDialog。 这是我的代码: 这就是我的风格: 这些链接都帮不了我: > 您需要在此活动中使用theme.AppCompat主题(或后代) ActionBarCompat:java.lang.IllegalStateException:您需要使用Theme.AppCompat

  • 我必须将位置的实际值放入变量中,但我有这样一个错误: 我的代码是: 在其他活动中,我可以使用获取值,但它总是返回一个错误。 04-16 23:01:43.447 129 54-12954/greetrack.estg.ipvc.greentrack E/zygote:MountEmulatedStorage()04-16 23:01:43.447 129 54-12954/greetrack.es