热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如果选中radiobutton,则显示监听器的结果-Displayresultwithlistenerifradiobuttonchecked

ineedtodisplay24,36,60inMonthsTxtViewineachconditionofifwhenusercheckthecoresponding

i need to display 24,36,60 in MonthsTxtView in each condition of if when user check the coresponding radio button . For example if user check 2 years i need to display on MonthsTxtview the 24 and etc... Below is my code but when i am running and checking a radio button tolds me "Unfortunately,Carloan (name of app) has stopped" and closes my app any suggestion?

如果用户检查相应的单选按钮,我需要在每个条件下在MonthsTxtView中显示24,36,60。例如,如果用户检查2年我需要在MonthsTxtview上显示24等等...下面是我的代码,但是当我正在运行并且检查单选按钮告诉我“不幸的是,Carloan(app的名称)已经停止”并关闭我的app有什么建议吗?

XML CODE:

  
    



         
        
        
        

    

JAVA CODE:

  package com.example.ioann_000.carloan;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import java.text.NumberFormat;


public class MainActivity extends AppCompatActivity {
    private static final String TAG = "CARLOAN";
    private TextView MonthsTxtView;
    private TextView Total2TxtView;
    private RadioGroup RadioGroup1;
    private RadioButton selected;
    private int years2=24;
    private int years3=36;
    private int years5=60;
    private double MOntlyI= 0;
    private double loan = 0;
    private RadioButton radioyear2;
    private RadioButton radioyear3;
    private RadioButton radioyear5;



    private static final NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
    private static final NumberFormat percentFormat = NumberFormat.getPercentInstance();




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MOnthsTxtView= (TextView) findViewById(R.id.MonthsTxtView);
        Total2TxtView = (TextView) findViewById(R.id.Total2TxtView);
        radioyear2 = (RadioButton) findViewById(R.id.radioyear2);
        radioyear3 = (RadioButton) findViewById(R.id.radioyear3);
        radioyear5 = (RadioButton) findViewById(R.id.radioyear5);
        EditText IREditText = (EditText) findViewById(R.id.IREditText);
        EditText AmountEditText = (EditText) findViewById(R.id.AmountEditText);
        EditText AFEditText = (EditText) findViewById(R.id.AFEditText);
        RadioBtn();
        Log.i(TAG, "onCreate: ");
    }


      private void RadioBtn () {

            RadioGroup selected= (RadioGroup) findViewById(R.id.RadioGroup1);
           selected.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
               @Override
               public void onCheckedChanged(RadioGroup radioGroup, int i) {
                   if(radioyear2.isChecked()) {

                       MonthsTxtView.setText("24");
                       Log.i(TAG, "onCheckedChanged: ");

               }
                   else if (radioyear3.isChecked()) {

                       MonthsTxtView.setText("36");
                       Log.i(TAG, "onCheckedChanged: ");

                   }
                   else

                       MonthsTxtView.setText("60");
                   Log.i(TAG, "onCheckedChanged: ");

               }

      });
          Log.i(TAG, "RadioBtn: ");
      }

















}

ERROR when Clicking Radio Button:

单击单选按钮时出错:

**12-07 01:31:00.863 4006-4006/com.example.ioann_000.carloan E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.example.ioann_000.carloan, PID: 4006
                                                                             java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.RadioButton.isChecked()' on a null object reference
                                                                                 at com.example.ioann_000.carloan.MainActivity$1.onCheckedChanged(MainActivity.java:64)
                                                                                 at android.widget.RadioGroup.setCheckedId(RadioGroup.java:174)
                                                                                 at android.widget.RadioGroup.access$600(RadioGroup.java:54)
                                                                                 at android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:358)
                                                                                 at android.widget.CompoundButton.setChecked(CompoundButton.java:157)
                                                                                 at android.widget.CompoundButton.toggle(CompoundButton.java:113)
                                                                                 at android.widget.RadioButton.toggle(RadioButton.java:78)
                                                                                 at android.widget.CompoundButton.performClick(CompoundButton.java:118)
                                                                                 at android.view.View$PerformClick.run(View.java:19866)
                                                                                 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:5254)
                                                                                 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)
**

ERROR 2 : E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.ioann_000.carloan, PID: 11445 java.lang.IllegalStateException: Could not find method onRadioButtonClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatRadioButton with id 'radioyear2' at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) at android.view.View.performClick(View.java:4780) at android.widget.CompoundButton.performClick(CompoundButton.java:120) at android.view.View$PerformClick.run(View.java:19866) 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:5254) 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) Disconnected from the target VM, address: 'localhost:8625', transport: 'socket'

错误2:E / AndroidRuntime:FATAL EXCEPTION:main进程:com.example.ioann_000.carloan,PID:11445 java.lang.IllegalStateException:无法在父级或祖先中找到onRadioButtonClicked(View)方法上下文中的android:onClick属性已定义在android.support.v7.app.AppCompatViewInflater上的id为“radioyear2”的视图类android.support.v7.widget.AppCompatRadioButton上,在android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener中声明了OnClickListener.resolveMethod(AppCompatViewInflater.java:327) .onClick(AppCompatViewInflater.java:284)在Android.view.View.View.View.View.View的android.widget.CompoundButton.performClick(CompoundButton.java:120)上的android.view.View.performClick(View.java:4780)$ PerformClick.run( View.java:19866)在android.os.Handler.handleCallback(Handler.java:739)android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java:135) )在java.lang.reflect.Method.invoke(Native Met)的android.app.ActivityThread.main(ActivityThread.java:5254)在com.android.internal.os.ZygoteInit的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)的java.lang.reflect.Method.invoke(Method.java:372)上。 .main(ZygoteInit.java:698)与目标虚拟机断开连接,地址:'localhost:8625',传输:'socket'

3 个解决方案

#1


0  

One of your RadioButtons is outside the RadioGroup tag. Check that first. Regards!

您的一个RadioButton位于RadioGroup标签之外。先检查一下。问候!

The other thing you can do is something like bellow:

你可以做的另一件事就是像吼叫:

int checkedRadioButtOnId= selected.getCheckedRadioButtonId();
if (checkedRadioButtOnId== -1) {
    // No item selected
}
else{
    switch(checkedRadioButtonId){
       case R.id.radioyear2:
        // Do something cool here
       break;
       case R.id.radioyear3:
        // Do something cool here
       break;
       case R.id.radioyear5:
        // Do something cool here
       break;
    }
}

And also, you missed to initialize your MonthsTxtView with the findViewById...

而且,您错过了使用findViewById初始化MonthsTxtView ...

#2


0  

It does not look like you initialized your radio buttons. You need to bind them to the variables using findViewById. It would also help if you posted the stack trace

它看起来不像你初始化你的单选按钮。您需要使用findViewById将它们绑定到变量。如果您发布了堆栈跟踪,它也会有所帮助

In onCreate

radioyear2 = (RadioButton) findViewById(R.id.radioyear2);
radioyear3 = (RadioButton) findViewById(R.id.radioyear3);
radioyear5 = (RadioButton) findViewById(R.id.radioyear5);

MOnthsTxtView= (TextView) findViewById(R.id.MonthsTxtView);

#3


0  

finally i have to do this change:

最后我必须做这个改变:

 `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.radioyear2:
                if (checked)
                    MonthsTxtView.setText("24");
                Log.i(TAG, "onRadioButtonClicked: ");
                    break;
            case R.id.radioyear3:
                if (checked)
                    MonthsTxtView.setText("36");
                Log.i(TAG, "onRadioButtonClicked: ");
                    break;
            case R.id.radioyear5:
                if (checked)
                    MonthsTxtView.setText("60");
                Log.i(TAG, "onRadioButtonClicked: ");
                break;
        }
    }
      }`

thanks to @David Rawson

感谢@David Rawson


推荐阅读
  • 详解Android  自定义UI模板设计_由浅入深
    学习安卓已有一些日子,前段时间整理了不少笔记,但是发现笔记不变分享与携带。今天开始整理博客,全当是与大家分享交流与自身学习理解的过程吧。结合最近在做的一个新闻类app及学习中的问题,一点一点整理一下, ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 微信小程序导航跟随的实现方法
    本文介绍了在微信小程序中实现导航跟随的方法。通过设置导航的position属性和绑定滚动事件,可以实现页面向下滚动到导航位置时,导航固定在页面最上方;页面向上滚动到导航位置时,导航恢复到原始位置;点击导航可以平滑跳转到相应位置。代码示例也给出了具体实现方法。 ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
  • Editedbymythouhttp:www.cnblogs.commythoupublicbooleancreateReflectedForAdapter(){finalintr ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了10分钟了解Android的事件分发相关的知识,希望对你有一定的参考价值。什么是事件分发?大家 ... [详细]
author-avatar
老鼠也偷腥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有