只要我选择一个单选按钮,应用程序就会停止工作

王子

我有两个单选按钮,如果选择了一个,我想更改的值Textview我收到一个错误。当我单击单选按钮之一时,该应用程序停止工作。它在日志中给出此错误。

 logged error 
>    /com.example.myapp.mttally E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.myapp.mttally, PID: 15125
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:4025)
            at android.view.View.performClick(View.java:4785)
            at android.widget.CompoundButton.performClick(CompoundButton.java:120)
            at android.view.View$PerformClick.run(View.java:19884)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5343)
            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:905)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4020)
            at android.view.View.performClick(View.java:4785)
            at android.widget.CompoundButton.performClick(CompoundButton.java:120)
            at android.view.View$PerformClick.run(View.java:19884)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5343)
            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:905)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
         Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

..`            

          

我在主文件上的Java代码是这个

package com.example.myapp.mttally;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
RadioButton lend;
RadioButton borrow;
TextView toFrom;

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


    TextView toFrom = (TextView) findViewById(R.id.toFrom);

    RadioButton lend = (RadioButton) findViewById(R.id.lend);
    RadioButton borrow = (RadioButton) findViewById(R.id.borrow);


}

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


public void onRadioButtonClicked(View view) {
    // Is the button now checked?

    Boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch (view.getId()) {
        case R.id.lend:
            if (checked)
                toFrom.setText("   To");
                break;
        case R.id.borrow:
            if (checked)
                toFrom.setText("   From");
            break;
    }
}
}

这是我的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"  
 tools:context=".MainActivity">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"

    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="8dp"
    android:id="@+id/linearLayout">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:clickable="false"
        >

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radio_button1"
                android:id="@+id/lend"
                android:textSize="16dp"
                android:onClick="onRadioButtonClicked"
                />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radio_button2"
                android:id="@+id/borrow"
                android:textSize="16dp"
                android:onClick="onRadioButtonClicked"
                />
        </RadioGroup>
    </LinearLayout>


</LinearLayout>

<TextView
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:id="@+id/toFrom"
    android:layout_below="@+id/linearLayout"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="78dp" />

</RelativeLayout>
道代

每次您编写类似TextView toFrom,,RadioButton lend或更笼统地说<type of variable> <variable name>,您都在声明一个新变量。您声明变量叫twoFromlendborrow在两个地方:一次在MainActivity类,一次在onCreate方法。因此,您的代码具有两个不同的变量,都称为toFrom,两个变量称为lend,两个变量称为borrow

考虑lend变量。lend变量的每个副本都有其自己的“作用域”,变量所在的代码区域。由于您lend在类本身中声明了第一个变量(而不是在任何方法中),因此它的范围是类。您可以(通常)在类中任何地方的代码中使用它。

lend但是,您的第二个变量是导致问题的原因。您已经lendonCreate方法内部声明了第二个变量第二个lend是获取TextView对象的方法……一旦onCreate方法完成执行,它就不复存在了

因此,要解决此问题,您onCreate应如下所示:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toFrom = (TextView) findViewById(R.id.toFrom);
    lend = (RadioButton) findViewById(R.id.lend);
    borrow = (RadioButton) findViewById(R.id.borrow);
}

这样,当您获得对TextView的引用时,会将其保存在onRadioButtonClicked被调用时仍将存在的变量中,而不是保存在几乎立即不存在的第二个同名变量中。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一旦我在STPAddCardViewController()上选择完成,应用程序就会加载并且不会停止加载

来自分类Dev

每当我杀死应用程序时,IntentService就会停止

来自分类Dev

每当我杀死应用程序时,IntentService就会停止

来自分类Dev

单击按钮后,应用程序停止工作

来自分类Dev

单击按钮后应用程序停止工作

来自分类Dev

单击按钮后应用程序停止工作

来自分类Dev

在angularjs中添加另一个模块依赖项,应用程序停止工作

来自分类Dev

在angularjs中添加另一个模块依赖项,应用程序停止工作

来自分类Dev

从另一个处理程序取消选中单选按钮后,用于基于另一个输入字段检查单选按钮的处理程序停止工作

来自分类Dev

在从另一个处理程序取消选中单选按钮后,用于根据另一个输入字段检查单选按钮的处理程序停止工作

来自分类Dev

在/ usr / bin中更改权限后,为什么某些应用程序会停止工作?

来自分类Dev

为什么我的应用程序停止工作?

来自分类Dev

我的应用程序在 pos 设备上停止工作

来自分类Dev

应用程序已停止工作

来自分类Dev

我的第一个应用已停止工作错误

来自分类Dev

当我按下在片段中激活异步任务的按钮时,应用程序停止工作

来自分类Dev

Bluemix移至cflinuxfs2堆栈后,Android移动第一个应用程序停止工作

来自分类Dev

将onclick侦听器添加到按钮会停止应用程序的工作

来自分类Dev

创建一个停止按钮以停止在C#Windows Form应用程序中的记录

来自分类Dev

单击按钮编码以保存、刷新和搜索时,应用程序停止工作

来自分类Dev

JavaScript验证无法正常工作-只要if语句为真,它就会停止所有if语句?

来自分类Dev

从菜单中选择帮助(警告对话框)选项时,应用程序停止工作

来自分类Dev

当我从下拉列表中选择一个选项时,jQuery typeahead停止工作

来自分类Dev

如果我按一个键然后另一个太快,我的 pygame 精灵就会停止移动

来自分类Dev

android编程的新手,试图创建登录按钮以进入登录屏幕。当我单击登录按钮时,应用程序显示“停止工作”

来自分类Dev

iOS动画在iOS7中的我的应用程序中停止工作

来自分类Dev

URL中出现JSESSIONID后,我的Web应用程序停止工作

来自分类Dev

当我得到的数据的此方法的应用程序停止工作

来自分类Dev

我无法打印此数组。应用程序在此行后停止工作

Related 相关文章

  1. 1

    一旦我在STPAddCardViewController()上选择完成,应用程序就会加载并且不会停止加载

  2. 2

    每当我杀死应用程序时,IntentService就会停止

  3. 3

    每当我杀死应用程序时,IntentService就会停止

  4. 4

    单击按钮后,应用程序停止工作

  5. 5

    单击按钮后应用程序停止工作

  6. 6

    单击按钮后应用程序停止工作

  7. 7

    在angularjs中添加另一个模块依赖项,应用程序停止工作

  8. 8

    在angularjs中添加另一个模块依赖项,应用程序停止工作

  9. 9

    从另一个处理程序取消选中单选按钮后,用于基于另一个输入字段检查单选按钮的处理程序停止工作

  10. 10

    在从另一个处理程序取消选中单选按钮后,用于根据另一个输入字段检查单选按钮的处理程序停止工作

  11. 11

    在/ usr / bin中更改权限后,为什么某些应用程序会停止工作?

  12. 12

    为什么我的应用程序停止工作?

  13. 13

    我的应用程序在 pos 设备上停止工作

  14. 14

    应用程序已停止工作

  15. 15

    我的第一个应用已停止工作错误

  16. 16

    当我按下在片段中激活异步任务的按钮时,应用程序停止工作

  17. 17

    Bluemix移至cflinuxfs2堆栈后,Android移动第一个应用程序停止工作

  18. 18

    将onclick侦听器添加到按钮会停止应用程序的工作

  19. 19

    创建一个停止按钮以停止在C#Windows Form应用程序中的记录

  20. 20

    单击按钮编码以保存、刷新和搜索时,应用程序停止工作

  21. 21

    JavaScript验证无法正常工作-只要if语句为真,它就会停止所有if语句?

  22. 22

    从菜单中选择帮助(警告对话框)选项时,应用程序停止工作

  23. 23

    当我从下拉列表中选择一个选项时,jQuery typeahead停止工作

  24. 24

    如果我按一个键然后另一个太快,我的 pygame 精灵就会停止移动

  25. 25

    android编程的新手,试图创建登录按钮以进入登录屏幕。当我单击登录按钮时,应用程序显示“停止工作”

  26. 26

    iOS动画在iOS7中的我的应用程序中停止工作

  27. 27

    URL中出现JSESSIONID后,我的Web应用程序停止工作

  28. 28

    当我得到的数据的此方法的应用程序停止工作

  29. 29

    我无法打印此数组。应用程序在此行后停止工作

热门标签

归档