EditText.getText().toString() 崩溃

2023-12-10

在我的 android 应用程序中,我有 3 个对话框,用户将信息放入 3 个 editText 中,在随机选择要选择的数据后,它会将其中一个数据显示到另一个类/页面上。

这是我的主要课程

public class MainActivity extends Activity {
   //Variables are displayed in this area 
    String choices[] = new String[3];
    //EditText editText;
    //EditText editText2;
    //EditText editText3;
    Button mainButton ; 

    Random rand = new Random(); 
    int finalChoice; 
    String displayChoice = ""; 
    EditText editText ; 
    EditText editText2; 
    EditText editText3;
    EditText editText4; 
    String test;
    int count = 3; 


//--------------------------- --------------------------------------------------------


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        //Makes Button

        setContentView(R.layout.activity_main);
        declareTextBox(); 
        setButton(); 
        String choice1 = editText.getText().toString();
        String choice2 = editText2.getText().toString(); 
        String choice3 = editText3.getText().toString();

        choices[0] = choice1; //pass from click button to method.
        choices[1] = choice2;
        choices[2] = choice3;  

        finalChoice =rand.nextInt(2);


    }
     public void setButton()
     {
         final Button mainbutton = (Button) findViewById(R.id.mainButton);

         mainbutton.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {

             test =  ((EditText) findViewById(R.id.editText4)).getText().toString(); 

        // count++; 
         //retChoice(); 
            // loadScreen(); 
         Intent i  = new Intent(MainActivity.this, resultScreen.class);
         i.putExtra("display" , displayChoice);

         Intent intent = new Intent(MainActivity.this,loadingScreen.class);

            //start the second Activity
         MainActivity.this.startActivity(intent);


          }
      }); 

     }
    public void declareTextBox()
    {
        editText = (EditText) findViewById(R.id.editText1);
        editText2 =  (EditText) findViewById(R.id.editText2); 
        editText3 = (EditText) findViewById(R.id.editText3); 

    }
    public void getString(String finalChoice)
    {
        finalChoice = displayChoice; 
    }


    public String retChoice()
    {


        displayChoice = choices[finalChoice];

        return displayChoice; 
    }
    public void clearText()
    {
         editText.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                 editText.setText(" "); 
                }
            }); 

         editText2.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    editText2.setText(" "); 
                }
            }); 

         editText3.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    editText3.setText(" "); 
                }
            }); 

    }
    public void getText2()
    {

    }
    public void getText()
    {



    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

这是我的显示课程:

public class resultScreen extends Activity {
    MainActivity ma = new MainActivity(); 
    //Method supposedly retrieves the string data from MainActivity Class but somehow displayed null instead. 
    //Find a way to keep the string variable when transfering from one class to another class. 
      String finalResult = ma.retChoice(); 
      public void onCreate(Bundle resultScreen){
      super.onCreate(resultScreen);
      setContentView(R.layout.resultscreen);
      //ma.displayChoice.toString(); 

      String str = finalResult;

      TextView text = (TextView) findViewById(R.id.textView1);
      text.setText(str);

      final Button backbutton = (Button) findViewById(R.id.backButton);
      backbutton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) 

      {

      Intent intent = new Intent(resultScreen.this,MainActivity.class);
      resultScreen.this.startActivity(intent);     


      }
        });



        }

}

这是我单击主按钮后的加载屏幕类

public class loadingScreen extends Activity{

protected void onCreate(Bundle loadingScreen) {
    // TODO Auto-generated method stub

    super.onCreate(loadingScreen);
    setContentView(R.layout.loadingscreen);


    //If sound clip 20 sec long we don't want to carryit outside next class


    // A timer thread looking for "run" method
    Thread timer = new Thread()
    {
        public void run() {
            try {

                //this is how many mil sec
                sleep(8000);


            } catch (InterruptedException e) {
                e.printStackTrace();

            } finally {
                Intent intent = new Intent(loadingScreen.this, resultScreen.class);
                loadingScreen.this.startActivity(intent);
                loadingScreen.this.finish();

             }

        }
    };
    timer.start();
}

}

当程序尝试在结果屏幕上显示数据时,我的应用程序在加载屏幕几秒钟后崩溃。

这是我的日志猫

    05-17 22:32:54.446: D/AndroidRuntime(1181): Shutting down VM
05-17 22:32:54.446: W/dalvikvm(1181): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
05-17 22:32:54.636: E/AndroidRuntime(1181): FATAL EXCEPTION: main
05-17 22:32:54.636: E/AndroidRuntime(1181): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.choiceprototest/com.example.choiceprototest.resultScreen}: java.lang.NullPointerException
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.os.Looper.loop(Looper.java:137)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread.main(ActivityThread.java:5039)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at java.lang.reflect.Method.invoke(Method.java:511)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at dalvik.system.NativeStart.main(Native Method)
05-17 22:32:54.636: E/AndroidRuntime(1181): Caused by: java.lang.NullPointerException
05-17 22:32:54.636: E/AndroidRuntime(1181):     at com.example.choiceprototest.MainActivity.retChoice(MainActivity.java:101)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at com.example.choiceprototest.resultScreen.<init>(resultScreen.java:18)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at java.lang.Class.newInstanceImpl(Native Method)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at java.lang.Class.newInstance(Class.java:1319)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
05-17 22:32:54.636: E/AndroidRuntime(1181):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
05-17 22:32:54.636: E/AndroidRuntime(1181):     ... 11 more
05-17 22:33:03.385: I/Process(1181): Sending signal. PID: 1181 SIG: 9
05-17 22:33:05.435: E/Trace(1204): error opening trace file: No such file or directory (2)

多谢你们。


我相信我看到了问题。您正在尝试访问您的Array但它是一个实例变量而不是静态变量,因此当您退出时它会被杀死Activity。您可以将它们放在静态类中并以这种方式访问​​它们,或者传递String变量通过你的Intent,取决于您的需要。

如果您有以下价值String当你离开时你需要MainActivity那么我可能会通过你的Intent。如果该值取决于您的另一个中的某些内容Activities然后我会考虑将它放在一个单独的类中,但看起来这不是你需要的

Edit

你已经在这里这样做了,有点

Intent i  = new Intent(MainActivity.this, resultScreen.class);
     i.putExtra("display" , displayChoice);

     Intent intent = new Intent(MainActivity.this,loadingScreen.class);

但你还没有开始Activity那会得到String

i.putExtra("display" , displayChoice);

该线将经过String with key "displpay"和价值displayChoice,虽然我认为该值是空的String那时,但你没有开始Activity。我不知道你的流程应该如何工作,但基本上你会做这样的事情

String displayChoice = "testValue";   // some arbitrary value--whatever you need to send
Intent i  = new Intent(MainActivity.this, resultScreen.class);  // create the Intent
i.putExtra("display" , displayChoice);  // add the extra
startActivity(i);  //start the Activity

然后获取里面的值resultScreen in onCreate()

Intent recIntent = getIntent();  // get the Intent that started this Activity
String value = recIntent.getStringExtra("display");   // get the value using the key
// value now equals "testValue"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EditText.getText().toString() 崩溃 的相关文章

  • JTable 和 JScrollpane 大小的问题

    我有一个JScrollPane with a JTable在里面 在里面JTable我最初有 3 行 稍后添加行 默认JTable我的 3 行很难看 因为JScrollPane calls getPreferredScrollableVie
  • Android 中的列表视图分页

    我有一个列表视图 其中显示了 50 个元素 我决定对视图进行分页 以便视图的每个部分都有 10 个元素 然后单击 下一个 按钮以获取下一个 10 个元素 如何设置10个数据 我关注这篇文章http rakhi577 wordpress co
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 是否可以使用 CardView 为浮动操作按钮制作阴影?

    I know CardView不是为此而设计的 但理论上如果cardCornerRadius view size 2它应该导致圆圈 我错过了什么吗 绘制真实的动画阴影并不困难 您可以尝试在 Froyo 等任何 Android 设备上实现 L
  • 如何构建自定义摄像机应用程序?

    我正在尝试开发一个自定义摄像机录像机 当我的设备在 Activity 的 beginRecording 中执行 start MediaRecorder 方法时 应用程序崩溃 我不知道出了什么问题 因为我遵循谷歌API指南 http deve
  • Activity 类型中的方法 showDialog(int) 在 Android 中已被弃用?

    方法showDialog int 从类型Activity is 已弃用 什么原因 以及如何解决 什么原因 http developer android com reference android app Activity html show
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • Hibernate HQL:将对值作为 IN 子句中的参数传递

    我面临一个问题 如何使用 IN 子句将查询中的成对值的参数传递给 HQL 例如 select id name from ABC where id reg date in x y 并且参数是不同的数据类型string id 和reg date
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • Fragment 生命周期和在不存在的 Fragment 上调用 onCreate 的问题

    我正在 Android 中测试片段 并且片段生命周期有一些令人困惑的行为 我有一个活动 在横向和纵向模式下使用 xml 布局 我有一些代码可以访问在片段布局之一中定义的 EditText 对象 如果我以横向模式启动应用程序 一切都会正常 我
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 为什么带处理程序的连续自动对焦相机不允许切换相机闪光灯?

    到目前为止我所做的 我已经实现了用于读取二维码的自定义相机 需要继续聚焦相机以获得更好的二维码读取 我的问题当我使用处理程序每 秒聚焦一次时 相机闪光灯开 关按钮不起作用 或者打开和关闭相机闪光灯需要太多时间 当我删除每秒自动对焦相机的代码
  • Java、Spring、Hibernate找不到org.springframework.orm.hibernate3.LocalSessionFactoryBean

    我正在尝试制作 spring hibernate ant 项目 目前我收到此错误 HTTP Status 500 type Exception report message description The server encountere

随机推荐

  • 价值关联的关键

    我正在尝试做什么创建汽车 为创建的每辆汽车分配一个名称 以下是我所做的 codes public class Cars Map
  • 如何以编程方式将非身份列更改为身份一?

    我有一个表 其列 ID 为标识一 接下来 我创建新的非身份列 new ID 并使用 ID 列 1 中的值更新它 如下所示 new ID ID 1 接下来 我删除 ID 列并将 new ID 重命名为 ID 以及如何在这个新列 ID 上设置身
  • 如何从末尾截断文件? (跨平台)

    我正在尝试找到一种跨平台的删除方法X从文件末尾开始的字节 目前我发现 平台特定的解决方案 例如 posix 的 truncate 这是我不想要的 因为我希望 C 程序在多个平台上运行 读入整个文件 然后再次写出该文件减去我要删除的字节 我想
  • 如何获取`__NSAutoreleaseNoPool`地址?

    我尝试过 extern void NSAutoreleaseNoPool void obj 但这会导致链接时出现未解析的符号 但不确定它需要什么框架 我也尝试过 dlsym RTLD DEFAULT NSAutoreleaseNoPool
  • 当鼠标悬停在边框上时,如何完全禁用调整窗口大小(包括调整大小图标)?

    我用了 setFixedSize size 阻止窗口调整大小 但当鼠标位于窗口边框上方时 调整大小箭头仍然出现 有没有更好的方法来禁用窗口调整大小以避免在跨越边界时显示箭头 Qt 有一个 windowFlag 称为Qt MSWindowsF
  • 为什么可以赋值`async`和`await`关键字? [复制]

    这个问题在这里已经有答案了 我注意到async关键字可以被赋予任何值 甚至可以用作普通变量 let async world console log async console log Hello async 然而 即便如此 它仍然像以前一样
  • 如何使用笑话和酶测试正在使用其他微前端组件的一个微前端组件

    我有两个微前端 写在react 打字稿 仪表板MFE and 通用MFE 常见的MFE有几个组件可以独立地被仪表板使用 例如 通知组件 加载器组件等 MFE1 有仪表板 组件 tsx简化版本如下所示 import React from re
  • 调试时 MVC CSS 未在 Visual Studio 中呈现

    我遇到一个问题 当我编译 MVC 项目并在 https localhost MyApp 上查看它时 CSS 无法正确呈现 按钮和背景图像没有显示 它曾经工作过一次 然后由于某种原因它停止工作 页面没有缓存的原因是什么 我用firebug检查
  • 如何将字符串中的列表转换为Python中的真实列表?

    e g from 1 2 3 to 1 2 3 作为函数int 使一个 5 a 5 The json and ast包可以帮助像这样的解析 在这种情况下尝试 import json foo json loads 1 2 3 or impor
  • 为 Google Analytics 报告 API 设置 HTTP 代理

    我已阅读以下链接 其中告诉我们如何在 Google API 上设置代理 使用 httplib2shim 设置代理 客户端 API 代理 httplib2shim 的官方存储库 谷歌代理支持链接 google api python clien
  • 使用 Linkify 后可以更改 TextView 链接文本吗?

    使用 Linkify 创建链接后是否可以更改 TextView 文本 我有一些东西 我希望 url 有两个字段 名称和 id 但我只希望文本显示名称 因此 我从包含名称和 ID 的文本的文本视图开始 然后进行链接以创建与这两个字段的适当链接
  • 将自定义列添加到 WooCommerce 管理优惠券列表

    昨天我们遇到了这样的情况 有人问我 谁创建了这张优惠券 不幸的是 WooCommerce 默认情况下不会在列出所有优惠券的优惠券概述中显示优惠券的创建者 我试图找出的是 如何在 WooCommerce gt 营销 gt 优惠券概述中添加包含
  • 使用 PHP 的 Chrome 原生消息传递

    我正在尝试构建一个可以通过本机消息传递与 Chrome 扩展进行通信的 PHP 类 我可以连接到我的代码 但在启动时 Chrome 会发送 chrome extension lkjcciocnocjjgpacggbaikjehbfedbl
  • 如何从包含西里尔字母的频道用户名获取 YouTube 频道 ID

    这是一个 YouTube 频道网址 用户名中包含西里尔字母 https www youtube com c D0 9B D1 83 D1 87 D1 88 D0 B8 D0 B5 D0 B4 D0 BE D0 BA D1 83 D0 BC
  • MySql:计算单词在列中出现的次数

    例如 如果我在这样的列中有数据 data I love book I love apple I love book I hate apple I hate apple 我怎样才能得到这样的结果 I 5 love 3 hate 2 book
  • Selenium 中的轮换代理

    我将 Selenium webdriver 用于 Firefox 和 Scrapy 现在我需要动态更改代理 但到目前为止我在文档中发现的是 当我实例化 webdriver 本身时 我可以在配置文件中指定代理 那么这意味着我无法动态更改代理
  • 如何使用引导验证来验证所见即所得编辑器

    Using bootstrap3 wysihtml5 bower 2013 11 22 所见即所得编辑器 and BootstrapValidator v0 5 2 使用引导验证来验证文本区域 bootstrap wysihtml5 编辑器
  • 如何检查Flutter应用程序是否在前台?

    我不想当应用程序位于前台时显示通知 如何检查我的应用程序的实时状态 在您的 State 类中 您需要实现WidgetsBindingObserver接口并监听小部件状态变化 像这样的事情 class MyHomePageState exte
  • @Autowire 因 @Repository 失败

    我无法使 Autowire 注释与 Repository 注释的类一起使用 我有一个界面 public interface AccountRepository public Account findByUsername String use
  • EditText.getText().toString() 崩溃

    在我的 android 应用程序中 我有 3 个对话框 用户将信息放入 3 个 editText 中 在随机选择要选择的数据后 它会将其中一个数据显示到另一个类 页面上 这是我的主要课程 public class MainActivity