so I had a version of this working earlier. Unfortunately, I forgot to copy the working version on to my USB, so I've attempted to duplicate this at home. I have 5 directional radio buttons. Each time one is checked, it is supposed to change the text in a TextView to correspond with the associated direction. Unfortunately, this does not seem to be working. When attempting to run the app, it crashes.
The debugging screen also throws out something about null pointer exceptions. Also, in the xml code for the radio buttons, there is something about the method I am calling not being found in Main. Any help is appreciated.
<RadioButton
android:text="@string/north"
android:layout_width="79dp"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="29dp"
android:id="@+id/north"
android:onClick="onClick" />
<RadioButton
android:text="@string/south"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/south" />
<RadioButton
android:text="@string/east"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/east" />
<RadioButton
android:text="@string/west"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/west" />
<RadioButton
android:text="@string/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/center" />
</RadioGroup>
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:id="@+id/speed"
android:layout_below="@+id/Speed"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
Activity:
public class MainActivity extends AppCompatActivity {
RadioButton n, s, e, w, c;
// TextView text = (TextView)findViewById(R.id.text);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public View.OnClickListener optionOnClickListener;
{
optionOnClickListener = new OnClickListener() {
public View v;
public void onClick(View v) {
this.v = v;
TextView text = (TextView) findViewById(R.id.text);
String str = null;
n = (RadioButton) findViewById(R.id.north);
s = (RadioButton) findViewById(R.id.south);
e = (RadioButton) findViewById(R.id.east);
w = (RadioButton) findViewById(R.id.west);
c = (RadioButton) findViewById(R.id.center);
// you can simply copy the string of clicked button.
str = ((RadioButton) v).getText().toString();
text.setText(str);
// or, you can check each radiobutton and find which one is checked.
if (n.isChecked()) {
text.setText("North");
} else if (s.isChecked()) {
text.setText("South");
} else if (e.isChecked()) {
text.setText("East");
} else if (w.isChecked()) {
text.setText("West");
} else if (c.isChecked()) {
text.setText("Center");
}
}
};
}
}