尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)”

2024-04-21

无法使用意图将数据从一个片段传递到另一个片段。逻辑很好。请检查主要活动的最后部分,其中我使用 putExtra 将字符串发送到其他活动。

这是 MainActivity.java :

public class MainActivity extends Activity implements View.OnClickListener {
EditText ed1,ed2,ed3,ed4,ed5,ed6;

Button bt1;
TextView tv1,tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ed1=(EditText)findViewById(R.id.editText);
    ed2=(EditText)findViewById(R.id.editText2);
    ed3=(EditText)findViewById(R.id.editText3);
    ed4=(EditText)findViewById(R.id.editText4);
    ed5=(EditText)findViewById(R.id.editText5);
    ed6=(EditText)findViewById(R.id.editText6);
    tv1=(TextView)findViewById(R.id.textView);
    tv2=(TextView)findViewById(R.id.textView2);
    bt1=(Button)findViewById(R.id.button);
    bt1.setOnClickListener(this);
}
public void onClick(View v)
{

    String str1=ed1.getText().toString();
   String str2=ed2.getText().toString();
    String str3=ed3.getText().toString();
    String str4=ed4.getText().toString();
    String str5=ed5.getText().toString();
    String str6=ed6.getText().toString();

    if(str1.matches("") || str2.matches("") || str3.matches(""))
    {
        tv1.setText("One or more fields missing");
        if(str4.matches("") || str5.matches("") || str6.matches(""))
        {
            tv2.setText("One or more fields missing");
        }
    }

    else {
        int age1 = Integer.parseInt(ed2.getText().toString());
        int age2 = Integer.parseInt(ed5.getText().toString());

        int l1 = str1.length();
        str1 = str1.toLowerCase();
        str4 = str4.toLowerCase();
        int l2 = str4.length();

        int[] a = new int[26];
        int[] b = new int[26];

        for (int i = 0; i < l1; i++) {

            char c = str1.charAt(i);
            int x = (int) c - 97;
            a[x]++;
        }
        for (int i = 0; i < l2; i++) {

            char c = str4.charAt(i);
            int x = (int) c - 97;
            b[x]++;
        }
        int s=0,p;
        for(int i=0;i<26;i++)
        {
            if(a[i]>b[i])
                p=a[i];
            else
                p=b[i];

            s+=p;
        }
        if(l1>l2)
            p=l1;
        else
            p=l2;
        double love1=(double)(s/p)*100;
        double love2=0.0,x;

        if(age1>age2) {
            p = age1;
        x=age2;
        }
        else {
            p = age2;
            x=age1;
        }
        love2=(double)(x/p)*100;

        Intent in=new Intent(MainActivity.this,SecondActivity.class);
        String s1=""+love1;
        String s2=""+love2;



        in.putExtra("k1",str4);
       in.putExtra("k2",str4);
        in.putExtra("k3", love1);
        in.putExtra("k4",love2);
        startActivity(in);
        finish();


    }


}


}

这是 SecondActivity.java 的代码:

public class SecondActivity extends Activity {

    TextView tv7,tv8,tv9,tv10;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);


    Intent in = getIntent();

    String s1 = in.getStringExtra("k1");
    String s2 = in.getStringExtra("k2");
    String s3 = in.getStringExtra("k3");
    String s4 = in.getStringExtra("k4");
    tv7=(TextView)findViewById(R.id.textView3);
    tv8=(TextView)findViewById(R.id.editText4);
    tv9=(TextView)findViewById(R.id.editText5);
    tv10=(TextView)findViewById(R.id.editText6);

    tv7.setText("Hello "+s1);
    tv8.setText("Your partner "+s2+" is really nice");
    tv9.setText("Your love percent based on name is "+s3);
    tv10.setText("Your love percent based on age is "+s4);
}
}

这是我收到的错误:

 Process: khurana.nikhil.lovemeter, PID: 4019
java.lang.RuntimeException: Unable to start activity ComponentInfo{khurana.nikhil.lovemeter/khurana.nikhil.lovemeter.SecondActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5257)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at khurana.nikhil.lovemeter.SecondActivity.onCreate(SecondActivity.java:32)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)

这是activity_second.XML:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"
android:layout_height="match_parent"   android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#cefcfd"
tools:context="khurana.nikhil.lovemeter.SecondActivity">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView3"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="68dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView4"
    android:layout_below="@+id/textView3"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="51dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView5"
    android:layout_above="@+id/textView6"
    android:layout_alignStart="@+id/textView6"
    android:layout_marginBottom="84dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView6"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="51dp" />
</RelativeLayout>

            


tv8=(TextView)findViewById(R.id.editText4);
tv9=(TextView)findViewById(R.id.editText5);
tv10=(TextView)findViewById(R.id.editText6);

将这些更改为:

tv8=(TextView)findViewById(R.id.textView4);
tv9=(TextView)findViewById(R.id.textView5);
tv10=(TextView)findViewById(R.id.textView6);

您只是使用了错误的 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)” 的相关文章

随机推荐

  • 减少单元格中/chr(10) 的换行数

    我有一张 Excel 工作表 其中的单元格具有不同数量的换行符 我想减少它 以便每个新行之间只有一个换行符 例如 HELLO WORLD GOODBYE 将修改为 HELLO WORLD GOODBYE 我已经为此绞尽脑汁好几个小时了 并想
  • 日期格式化 C#

    我在将此日期格式转换为另一种格式时遇到问题 我希望这里有人能够帮助我 这是我的代码 string fromFormat ddd dd MM yyyy HH mm ss zzz string toFormat yyyy MM dd DateT
  • 删除 DataFrame 列中仅出现一次的值

    我有一个列中具有不同值的数据框x 我想删除列中仅出现一次的值 So this x 1 10 2 30 3 30 4 40 5 40 6 50 应该变成这样 x 2 30 3 30 4 40 5 40 我想知道是否有办法做到这一点 您可以通过
  • Visual Studio 链接文件目录结构

    我有一个项目的两个版本 一种用于 Silverlight 另一种用于 NET SL 项目拥有绝大多数代码库 我想将 SL 项目中的所有文件作为链接文件全局添加到 NET 版本中 我已经在 NET 版本的 csproj 文件中成功地做到了这一
  • 变量运算符可以吗?

    有没有办法执行类似于以下任一操作 var1 10 var2 20 var operator lt console log var1 operator var2 returns true OR var1 10 var2 20 var oper
  • 如何将外部图像添加到 Github 帖子

    我想将托管在外部源上的图像添加到 Github 但当我确认将其发布时 我只看到链接 Image https ibb co kOnOrb 我使用这种格式 但它不起作用 我单击创建的链接并看到消息Non Image content type r
  • 在 lambda 函数中使用 auto self(shared_from_this()) 变量的原因是什么?

    我阅读了 boost asio http 服务器示例代码 请参阅http www boost org doc libs 1 54 0 doc html boost asio example cpp11 http server connect
  • JavaScript 多个间隔和clearInterval

    我有一个小程序 当你点击一个 条目 时 编辑模式被打开 并且该条目是为其他人锁定的编辑 每10秒发送一个ajax请求来更新表中的时间戳 entry edit click function code loopLockingVar setInt
  • ASP.NET MVC 4:更改 Javascript 中隐藏字段的值

    我有一个隐藏布尔值 field Html HiddenFor x gt x IsTurkey 在 jQuery 脚本中我尝试更改它 Html IdFor x gt x IsTurkey val False 但回发后 IsTurkey 没有改
  • 如何在GDB中运行记录指令历史记录和函数调用历史记录?

    编辑 根据下面的第一个答案 当前的 技巧 似乎正在使用 Atom 处理器 但我希望一些 gdb 专家可以回答这是否是一个基本限制 或者路线图上是否添加了对其他处理器的支持 反向执行似乎在我的环境中起作用 我可以反向继续 查看合理的记录日志
  • 将变量临时存储在一系列管道 dplyr 中

    有没有办法暂停一系列管道来存储稍后可以在管道序列中使用的临时变量 我找到了这个question https stackoverflow com questions 40369832 assign intermediate output to
  • Hibernate 的“未保存值映射不正确”是什么意思?

    有一个著名的例外 org hibernate StaleObjectStateException 行已更新或删除 另一笔交易 或未保存值映射不正确 my Entity 123456 当 行被另一个事务更新或删除 时 这是一种非常熟悉的情况
  • Tomcat下无法运行PHP脚本

    我正在使用 Tomcat 6 我已经安装了 PHP 并尝试使用 PHP JavaBridge 在 Tomcat 中运行 PHP 我已在 Tomcat 的 webapps 目录中部署了 JavaBridge war 当运行任何 PHP 脚本时
  • 在 Android WebView 中获取 HTTP 状态代码

    我正在开发一个 Android 应用程序 该应用程序在 WebView 中加载网站 但有时该网站返回 HTTP 代码 500 我的问题是 有没有办法通过侦听器或另一个类从 WebView 获取 HTTP 状态代码 我尝试实现 WebView
  • PHP 日期差异

    我有以下代码 dStart new DateTime 2013 03 15 dEnd new DateTime 2013 04 01 dDiff dStart gt diff dEnd echo dDiff gt days 我不知道为什么我
  • C# Winforms DataGridView 具有像 Excel 一样的排序/过滤功能

    您好 我需要一个快速解决方案来使用 Winforms DataGridView 控件进行过滤 排序 就像在 Excel 中一样 我已经查看了该领域的现有帖子 但似乎没有一个能够满足我的需求 我正在手动填充我的 DataGridView 没有
  • 有像 Blend 这样的 HTML5 画布动画软件吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有没有像 Blend 这样的软件可以使用 HTML5 尤其是做动画相关的东西 就像是http raphaeljs com http raphaeljs
  • Git 克隆太慢

    这是我第一次搭建git服务器 当我使用TortoiseGit 1 8 1 0 32bit来处理操作时 一切都很好 但如果我使用git clone命令或git bash git克隆过程速度很慢 我附上了两张显示亲属的图片git clone传输
  • 使用 angular4 下载 pdf 格式的网页

    我是 Angular 4 的新手 我需要下载 pdf 格式的 HTML 网页 并且 html 网页包含输入等 Angular 控件 ng模型 单选按钮 已检查 它显示的不是控制值不明确的在pdf文件中 我尝试使用jsPdf 和 html2P
  • 尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)”

    无法使用意图将数据从一个片段传递到另一个片段 逻辑很好 请检查主要活动的最后部分 其中我使用 putExtra 将字符串发送到其他活动 这是 MainActivity java public class MainActivity exten