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

我想使用保存的首选项获取选定的单选按钮,但活动未打开?

微生毅
2023-03-14

这是密码

public RadioButton selectedSex;
public int selectedRadioButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    setContentView(R.layout.activity_personal_data);

    progressDialog = new ProgressDialog(this);

    // 0=FULL_NAME
    // 1 =BIRTHDAY
    //2=ADDRESS_LINE
    // 3=CITY
    //4=STATE
    // 5=PINCODE
    // 6=PHONE
    mUserPersonalInfo[0] = findViewById(R.id.user_name);
    mUserPersonalInfo[1]=findViewById(R.id.user_birth_date);
    mUserPersonalInfo[2]=findViewById(R.id.user_address_line);
    mUserPersonalInfo[3]=findViewById(R.id.user_city);
    mUserPersonalInfo[4]=findViewById(R.id.user_state);
    mUserPersonalInfo[5] = findViewById(R.id.userPhoneNumber);
    mUserPersonalInfo[6] = findViewById(R.id.user_pincode);
    mAuth = FirebaseAuth.getInstance();
    mSex=findViewById(R.id.user_sex);
    mNext = findViewById(R.id.personal_details_next_button);
    sharedpreferences = getSharedPreferences("personalPref", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedpreferences.edit();

    selectedRadioButton  = mSex.getCheckedRadioButtonId();
    selectedSex  = findViewById(selectedRadioButton);

    mUserPersonalInfo[1].setText( sharedpreferences.getString("userDOB", null));
    mUserPersonalInfo[0].setText(sharedpreferences.getString("userName", null));
    mUserPersonalInfo[2].setText(sharedpreferences.getString("userAddressline", null));
    mUserPersonalInfo[3].setText(sharedpreferences.getString("userCity", null));
    mUserPersonalInfo[4].setText( sharedpreferences.getString("userState", null));
    mUserPersonalInfo[5].setText( sharedpreferences.getString("userPhone", null));
    mUserPersonalInfo[6].setText(sharedpreferences.getString("userPincode", null));
    selectedSex.setSelected( sharedpreferences.getBoolean("userSex", false));
  //  mNext.setProgress(0);

   // FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    mNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //    mNext.setProgress(1);

            final String Birthday = mUserPersonalInfo[1].getText().toString();
            UserName = mUserPersonalInfo[0].getText().toString();
            final String Addressline = mUserPersonalInfo[2].getText().toString();
            final String City = mUserPersonalInfo[3].getText().toString();
            final String State = mUserPersonalInfo[4].getText().toString();
           PhoneNumber = mUserPersonalInfo[5].getText().toString();
            final String Pincode = mUserPersonalInfo[6].getText().toString();


   editor.putString("userName", UserName);
            editor.putString("userPhone", PhoneNumber);
            editor.putString("userDOB", Birthday);
            editor.putBoolean("userSex", selectedSex.isChecked());
            editor.putString("userAddressline", Addressline);
            editor.putString("userCity", City);
            editor.putString("userPincode", Pincode);
            editor.putString("userState", State);

            editor.apply();

进程:com.teepe.teepe,PID: 18864java.lang.RuntimeExcture:无法启动活动ComponentInfo{com.teepe.teepe/com.teepe.teepe.KYC.personalData}:java.lang.NullPointerExcture:尝试调用虚拟方法'空android.widget.RadioButton.setS选(布尔值)'在一个空对象引用android.app.ActivityThread.perform启动活动(ActivityThread.java:2646)在android.app.ActivityThread.handle启动活动(ActivityThread.java:2707)android.app.ActivityThread-wrap12(ActivityThread.java)在android.app.ActivityThread$H. handleMessage(ActivityThread.java:1460)android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Loop. cle(Loop. java: 154)在android. app。ActivityThread. main(ActivityThread. java: 6077)在java. lang.反射。方法调用(本机方法)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 866)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 756)引起:java. lang.空指针异常:尝试调用虚拟方法的空android. widget。在com. teepe. teepe的空对象引用上选择(布尔值)。在android. app.Activity. java: 6662

共有2个答案

熊哲圣
2023-03-14

在这是找不到的看法

RadioButton selectedsex=findViewById(selectedRadioButton);

必须像:

RadioButton selectedSex=findViewById(R.id.selectedRadioButton)

郦良才
2023-03-14

似乎mSex。getCheckedRadioButtonId()未返回正确的Id。

因此,findViewById(selectedRadioButton)无法找到该视图。因此,setSelected方法调用中出现NullPointerException。

 类似资料:
  • 问题内容: 我有一段代码,其中一个包含三个s 。我想设置的,将显示的值的。但是,到目前为止我没有得到任何结果。如何获得的值并在中显示Toast?预先谢谢你,这是我的代码: XML档案: 问题答案: 经过测试和工作。检查一下 XML文件

  • 我已经自定义了应用程序中的所有单选按钮,但是listPreference中的单选按钮没有被自定义。 我用了这个名为btn_radio.xml 这是自定义的无线电按钮,它扩展了Android自定义单选按钮 在我的应用程序的主题中,我做了这些更改 此更改自定义我的应用程序中除列表首选项中的单选按钮之外的所有单选按钮

  • 如何获得文本而不是值,当我点击单选按钮? 下面的代码获取单选按钮的值。我想接短信(节目或电影)。提前道谢。 null null

  • 我的网页上有一个表单,如下所示: 如何在Javascript中提取当前选定单选按钮(没有提交操作)的值?我想要的是以下几点:

  • 本文向大家介绍jQuery获取选中单选按钮radio的值,包括了jQuery获取选中单选按钮radio的值的使用技巧和注意事项,需要的朋友参考一下   实例1:   获取一组单选按钮对象:var obj_payPlatform = $('#wrap input[name="payMethod"]');   获取被选中按钮的值 :var val_payPlatform = $('#wrap inpu

  • 我的应用程序有一个放射群。它有2个单选按钮。 选择单选按钮2 转到电话设置并更改语言。 返回应用程序活动。 再次创建活动。但是选择了radiobutton2。 实际上,当我创建活动时,它应该保留radiobutton1作为默认选择。但是在改变语言并进入我的活动之后,即使运行了onCreate(),它仍然保持以前的状态。 不知何故,状态没有被清除,当我再次创建活动时,我无法将radiobutton1