Reputation: 4253
I'm getting this null exception:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
and I don't know why.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.LoginRegister);
setContentView(R.layout.activity_report);
final TextView infoid = (TextView) findViewById(R.id.idInfo);
RadioGroup rg = (RadioGroup)findViewById(R.id.rg);
final String radiovalue = ((RadioButton)findViewById(rg.getCheckedRadioButtonId())).getText().toString();
...
Button sendButton = (Button) findViewById(R.id.button2);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = infoid.getText().toString(); //what is wrong?
Log.w("message: ", radiovalue);
}
});
}
my xml
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/idInfo"
android:hint="Add some extra information"
android:layout_weight="0.09"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp" />
<Button
android:text="Report"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2" />
any ideas?
Upvotes: 2
Views: 21292
Reputation: 379
If your are using RadioGroup inside Dialog / Alert Dialog then you have to cast it as
RadioButton radioButton = dialog.findViewById(checkedId);
Toast.makeText(ReLoan_Activity.this, "Selected Radio Button is
: " + radioButton.getText().toString(),
Toast.LENGTH_SHORT).show();
Upvotes: 0
Reputation: 11
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MyAndroidAppActivity extends Activity {
private RadioGroup radioGroup;
private RadioButton radioButton;
private Button btnDisplay;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addListenerOnButton();
}
public void addListenerOnButton() {
radioGroup = (RadioGroup) findViewById(R.id.radio);
btnDisplay = (Button) findViewById(R.id.btnDisplay);
btnDisplay.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// get selected radio button from radioGroup
int selectedId = radioGroup.getCheckedRadioButtonId();
// find the radiobutton by returned id
radioButton = (RadioButton) findViewById(selectedId);
Toast.makeText(MyAndroidAppActivity.this,
radioButton.getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
Upvotes: -1
Reputation: 11
if (radioGroup.getCheckedRadioButtonId() <= 0) {
Toast.makeText(yourclass, "Choose Radio Button Please", Toast.LENGTH_SHORT).show();
}
Upvotes: 0
Reputation: 21736
TextView
idInfo
is exist in your activity_report.xml
Try declaring idInfo
as global.
..............
....................
TextView infoid;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
infoid = (TextView) findViewById(R.id.idInfo);
.............
...................
Button sendButton = (Button) findViewById(R.id.button2);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = infoid.getText().toString();
..........
.................
}
});
}
UPDATE:
To get selected radioButton
text:
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.rg);
// get selected radioButton from radioGroup
int selectedId = radioGroup.getCheckedRadioButtonId();
// find the radioButton by returned id
radioButton = (RadioButton) findViewById(selectedId);
// radioButton text
String radiovalue = radioButton.getText();
Hope this will help~
Upvotes: 3