Невозможно получить ссылку на CheckBox в Android - PullRequest
0 голосов
/ 24 сентября 2019

Я использую CheckBox в макете своей деятельности.Но я не знаю, почему я не получаю ссылку на CheckBox.Это показывает NullPointerException каждый раз.Я использовал другой флажок в моем фрагменте диалога, но он работал нормально.Я не знаю, в чем причина NullPointerException.

Вот код XML

 <CheckBox
        android:id="@+id/ccb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="8dp"
        android:text="Add Your Previous Amount\n with Current Amount "
        android:textColor="@color/batteryChargedBlue"
        android:textSize="13dp"
        android:fontFamily="@font/caviardreams_bolditalic"
        />

Вот код Java, где я использую флажок и получаю исключение NullPointerException.

public class StartActivity extends AppCompatActivity {



//Declaring the CheckBox variable globally


CheckBox scb;

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



    ...

       //Initializing in the onCreate() method
       scb = (CheckBox)findViewById(R.id.ccb);

    ...
}

//using it in the button clicked method to check whether checkbox is checked or not
public void setInitialMonthlyAmount(View view) {

      if(scb.isChecked()) { //Getting The NullPointerException Here Don't know why ??
                System.out.println("Checkbox is checked");
                //Code
            }else {
                //Code
            }
}


}

Я думаю, что все правильно.и я использую тот же способ, чтобы получить ссылки на другие представления, такие как TextViews, EditText и т. д., и они работают нормально.Я не понимаю, что не так с этим флажком.Пожалуйста, помогите !!!

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Вы уверены, что закодировали активность как это:?

public class StartActivity extends AppCompatActivity {

CheckBox scb;

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

    scb = (CheckBox)findViewById(R.id.ccb);
    setInitialMonthlyAmount(view)
}

public void setInitialMonthlyAmount(View view) {

  if(scb.isChecked()) { 
            System.out.println("Checkbox is checked");
            //Code
        }else {
            //Code
        }

}
0 голосов
/ 24 сентября 2019

Убедитесь, что вы звоните setContentView(R.layout.your_layout_with_checkbox); в вашей деятельности onCreate!

...