我試圖通過單擊單選按鈕來更改視圖的可見性並編輯文本,但它不起作用。問題是一個java空指針。我該如何解決它?我證實所有變量都是正確的。使用單選按鈕更改視圖可見性時的NPE
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
View rad1 = (RadioButton)findViewById(R.id.radio1);
View rad2 = (RadioButton)findViewById(R.id.radio2);
final View test = findViewById(R.id.ProvencePrefecureView);
final EditText test1 = (EditText) findViewById(R.id.ProvencePrefecureEdit);
final View test2 = findViewById(R.id.rg);
final View test3 = (EditText) findViewById(R.id.Commune_arrondView);
final EditText test4 = (EditText) findViewById(R.id.Commune_arrondEdit);
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.radio1:
if (checked)
test.setVisibility(1);
test1.setVisibility(1);
test3.setVisibility(1);
test4.setVisibility(1);
break;
case R.id.radio2:
if (checked)
break;
}
}
}
XML:
<TextView
android:id="@+id/ProvencePrefecureView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/RegionView"
android:layout_below="@+id/RegionEdit"
android:layout_marginTop="16dp"
style="@style/question"
android:visibility="gone"
android:text="2. Province ou Préfecture : "
/>
<EditText
android:id="@+id/ProvencePrefecureEdit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ProvencePrefecureView"
android:layout_below="@+id/ProvencePrefecureView"
android:layout_marginTop="6dp"
style="@style/reponse"
android:visibility="gone"
android:ems="10"
/>
<TextView
android:id="@+id/Commune_arrondView"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/IDENTView"
style="@style/question"
android:layout_below="@+id/ProvencePrefecureEdit"
android:layout_marginTop="16dp"
android:text="3. Commune/Arrondissement : "
/>
<EditText
android:id="@+id/Commune_arrondEdit"
android:layout_width="fill_parent"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/NumeroDiscrictEdit"
android:layout_below="@+id/Commune_arrondView"
android:layout_marginTop="6dp"
style="@style/reponse"
android:ems="10"
/>
發表您的整個錯誤 –
你必須定義的測試,爲test1,TEST3和TEST4的觀點最終在onRadioButtonClicked方法來達到這些目標。幫你一個忙,並在onRadioButtonClicked方法上進行調試。 – Devrim
然後分享您的完整活動代碼。 – Devrim