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

Android Bundle-启动活动并将Bundle设置为Null

冉德元
2023-03-14

我正在尝试启动一个活动,其中包括捆绑包。我正在尝试将这个捆绑包设置为空,因为还没有任何东西传递给这个活动。

public class DailyActivities  extends Activity implements OnClickListener{
     TextView scoreA
    int gotA;
    int counter_score;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
          counter_score=0;
          int questions_1 = 26;

        initialize();

          ///////PSEUDO CODE...this is where Im trying to say, if no bundled is passed,
          ////////then setText for scoreA to the int counter score, 
           ////////so that the activity doesn't crash due to null pointer exception////
        Bundle gotA = getIntent().getExtras();
        if(gotA == null){ 
        scoreA.setText(counter_score);
          }else if (gotA != null){
        gotLetterA = gotA.getInt("key");
         counter_score = gotLetterA;
         int percentage = (int)( gotLetterA * 100.0 / questions_1 + 0.5);
         scoreA.setText(percentage);

   }   
}

目前,Android系统导致活动崩溃。未找到资源错误

编辑添加错误日志

08-24 10:39:33.180:E/AndroidRuntime(21177):致命异常:main 08-24 10:39:33.180:E/AndroidRuntime(21177):java。lang.RuntimeException:无法启动活动组件信息{com.test.app/com.test.app.DailyActivities}:android。所容纳之物res.Resources$NotFoundException:String resource ID#0x0 08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动线程。performLaunchActivity(ActivityThread.java:2059)08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动线程。handleLaunchActivity(ActivityThread.java:2084)08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动线程。在android上访问$600(ActivityThread.java:130)08-2410:39:33.180:E/AndroidRuntime(21177)。应用程序。ActivityThread$H.handleMessage(ActivityThread.java:1195)08-2410:39:33.180:E/AndroidRuntime(21177):在android上。操作系统。汉德勒。dispatchMessage(Handler.java:99)08-2410:39:33.180:E/AndroidRuntime(21177):在android上。操作系统。活套。loop(Looper.java:137)08-2410:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动线程。main(ActivityThread.java:4745)08-2410:39:33.180:E/AndroidRuntime(21177):在java。朗,反思一下。方法Invokenactive(本机方法)08-24 10:39:33.180:E/AndroidRuntime(21177):在java。朗,反思一下。方法invoke(Method.java:511)08-2410:39:33.180:E/AndroidRuntime(21177):在com上。Android内部的操作系统。ZygoteInit$MethodandArgscaler。运行(zyteinit.java:786)08-2410:39:33.180:E/AndroidRuntime(21177):在com上。Android内部的操作系统。合子体。main(zyteinit.java:553)08-2410:39:33.180:E/AndroidRuntime(21177):在dalvik。系统原生艺术。main(原生方法)08-2410:39:33.180:E/AndroidRuntime(21177):由android引起。所容纳之物res.Resources$NotFoundException:String resource ID#0x0 08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。所容纳之物资源。getText(参考资料:229)08-2410:39:33.180:E/AndroidRuntime(21177):在android上。小装置。文本视图。setText(TextView.java:3620)08-2410:39:33.180:E/AndroidRuntime(21177):在com上。感人的老师,泰坦。html" target="_blank">应用程序。日常活动。onCreate(DailyActivities.java:164)08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动performCreate(Activity.java:5008)08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。仪器仪表。callActivityOnCreate(Instrumentation.java:1079)08-24 10:39:33.180:E/AndroidRuntime(21177):在android上。应用程序。活动线程。performLaunchActivity(ActivityThread.java:2023)

这就是解决方案,我当时很紧张,哈哈

Bundle gotA = getIntent().getExtras();{ 
if(gotA == null){ scoreA.setText("0%"); 
}else { 
myPkg = gotA.getInt("key"); 
counter_score = myPkg; 
int percentage = (int)( myPkg * 100.0 / questions_1 + 0.5);

scoreA.setText(""+percentage); 
} 
}

共有2个答案

甄坚白
2023-03-14

看起来你永远不会给那个文本字段分配scoreA。

您需要添加类似于scoreA=(TextView)findViewById(R.id.score)的内容 在引用它之前。

韩智敏
2023-03-14

percentage是一个int。对setText(percentage)的调用所需的是资源ID,而不是百分比值。

试试这个:setText(“百分比”)。

这会将百分比转换为字符串,并将其传递给setText()。

p. s. WOUNDEDSteveJones也是对的,你需要打电话找到ViewById(),但我猜你在某个地方有这个,否则这个应用程序会以不同的方式崩溃。

 类似资料:
  • 我是Kafka的初来乍到,有一些基本的怀疑。我试着做一个Kafka建立的多节点(主动-主动)。情况如下:- 运行单个zookeeper(端口:2181) 创办了三家Kafka经纪人(9092、9093、9094) 创建单个主题测试(分区:1,复制3) 使用代理列表启动生产者(9092,9093) 在9092、9093、9094上启动了使用者,但它们都在使用相同的主题。 现在我怀疑的是,当我从生产者

  • 问题内容: 我有一个活动,其标题会不断变化,但有时会很长,并且最终会出现省略号。我可以将椭圆设置为中间吗? 问题答案: ((TextView) ((FrameLayout) ((LinearLayout) ((ViewGroup) getWindow() .getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)) .setEllips

  • 我有一个问题,我似乎无法独自解决。如果有一个OSGI捆绑包,它使用blueprint实例化应该部署到Karaf 3.0.0的对象。问题是,ClassNotFoundExceptions一直困扰着我,尽管相应的jar都位于捆绑包jar中。这是我的pom.xml: 这是我的一个blueprint xml文件(该文件导致ClassNotFoundException): 最后,这是我在尝试启动捆绑包时收到

  • 我有两个按钮“编辑” '公共类DepartmentAdapter扩展ArrayAdapter实现OnClickListener{ }' 在onClick()中,无法启动活动并出错: <代码>10-21 13:15:11.116:E/AndroidRuntime(11718):致命异常:main 10-21 13:15:11.116:E/AndroidRuntime(11718):java。lang

  • 如何将数据从一个活动转移到另一个活动并将其设置为文本视图? 这就是我的意图: 我想将questions_score传递到另一个活动,并将其设置为文本视图。

  • 问题内容: 在添加异步任务之前,我已经对代码进行了一些更改,我的应用程序可以正常运行其远程服务器上的身份验证用户名和密码,但是在登录成功消息消失后​​无法启动其他活动。有人建议我现在添加一个异步任务,但是我输入正确的用户名和密码后它将停止工作。当我输入错误的用户名和密码时,其工作正常将显示错误的用户名密码消息。如果有人能够知道会出现什么错误,请帮助我。 码- 日志猫 QuestionnActivi