Frage

I'm making a program for Android to display Toast messages using RadioButton,

In my program:

Toast.makeText(MainActivity.this, rd.toString(), Toast.LENGTH_LONG).show(); //here i'm using "rd.toString()", I tried to be used "rd.getText()" but it's showing an error.

now in Display it's showing this error.

here is my full source code to display radio button, please help how to fix this issue?

MainActivity.java:

package com.example.lesson08;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
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 MainActivity extends Activity {

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

        addListener();
    }

    public void addListener() {
        final RadioGroup rd=(RadioGroup)findViewById(R.id.sex);
        Button disp=(Button)findViewById(R.id.display);
        disp.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                int selectID=rd.getCheckedRadioButtonId();

                RadioButton rb=(RadioButton)findViewById(selectID);
                Toast.makeText(MainActivity.this, rd.toString(), Toast.LENGTH_LONG).show();
            }
        });
    }    
}

LogCat:

02-11 07:20:22.358: I/Choreographer(1575): Skipped 30 frames!  The application may be doing too much work on its main thread.
02-11 07:20:24.778: D/libEGL(1575): loaded /system/lib/egl/libEGL_genymotion.so
02-11 07:20:24.870: D/(1575): HostConnection::get() New Host Connection established 0xb7daa1e8, tid 1575
02-11 07:20:24.918: D/libEGL(1575): loaded /system/lib/egl/libGLESv1_CM_genymotion.so
02-11 07:20:24.962: D/libEGL(1575): loaded /system/lib/egl/libGLESv2_genymotion.so
02-11 07:20:25.202: W/EGL_genymotion(1575): eglSurfaceAttrib not implemented
02-11 07:20:25.242: E/OpenGLRenderer(1575): Getting MAX_TEXTURE_SIZE from GradienCache
02-11 07:20:25.242: E/OpenGLRenderer(1575): Getting MAX_TEXTURE_SIZE from GradienCache
02-11 07:20:25.662: E/OpenGLRenderer(1575): Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
02-11 07:20:25.666: D/OpenGLRenderer(1575): Enabling debug mode 0
02-11 07:20:25.918: D/dalvikvm(1575): GC_FOR_ALLOC freed 54K, 4% free 2926K/3044K, paused 15ms, total 17ms
02-11 07:20:57.814: D/libEGL(1634): loaded /system/lib/egl/libEGL_genymotion.so
02-11 07:20:57.910: D/(1634): HostConnection::get() New Host Connection established 0xb7d8c188, tid 1634
02-11 07:20:58.002: D/libEGL(1634): loaded /system/lib/egl/libGLESv1_CM_genymotion.so
02-11 07:20:58.058: D/libEGL(1634): loaded /system/lib/egl/libGLESv2_genymotion.so
02-11 07:20:58.290: W/EGL_genymotion(1634): eglSurfaceAttrib not implemented
02-11 07:20:58.298: E/OpenGLRenderer(1634): Getting MAX_TEXTURE_SIZE from GradienCache
02-11 07:20:59.006: E/OpenGLRenderer(1634): Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
02-11 07:20:59.010: D/OpenGLRenderer(1634): Enabling debug mode 0
02-11 07:20:59.362: D/dalvikvm(1634): GC_FOR_ALLOC freed 61K, 5% free 2919K/3044K, paused 14ms, total 17ms
02-11 07:22:59.346: D/libEGL(1712): loaded /system/lib/egl/libEGL_genymotion.so
02-11 07:22:59.370: D/(1712): HostConnection::get() New Host Connection established 0xb7da6fa8, tid 1712
02-11 07:22:59.462: D/libEGL(1712): loaded /system/lib/egl/libGLESv1_CM_genymotion.so
02-11 07:22:59.466: D/libEGL(1712): loaded /system/lib/egl/libGLESv2_genymotion.so
02-11 07:22:59.938: W/EGL_genymotion(1712): eglSurfaceAttrib not implemented
02-11 07:23:01.170: E/OpenGLRenderer(1712): Getting MAX_TEXTURE_SIZE from GradienCache
02-11 07:23:01.502: E/OpenGLRenderer(1712): Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
02-11 07:23:01.518: D/OpenGLRenderer(1712): Enabling debug mode 0
02-11 07:23:02.314: D/dalvikvm(1712): GC_FOR_ALLOC freed 67K, 5% free 2899K/3032K, paused 75ms, total 77ms
War es hilfreich?

Lösung

I think you like to display RadioButton text which is selected. So you can use following code.

RadioButton selectedRadioButton=(RadioButton)findViewById(selectID);
Toast.makeText(MainActivity.this, selectedRadioButton.getText().toString(), Toast.LENGTH_LONG).show();

Andere Tipps

Use it like this:

RadioButton rb=(RadioButton)findViewById(selectID);
Toast.makeText(MainActivity.this, rb.getText().toString(), Toast.LENGTH_LONG).show();

rb.toString() returns the name of the radio group instance.. If you use getText() first. It returns the text and converts it to a string.

change like this

RadioButton rb=(RadioButton)findViewById(selectID);
Toast.makeText(MainActivity.this, rb.getText().toString(), Toast.LENGTH_LONG).show();

in place of this

RadioButton rb=(RadioButton)findViewById(selectID);
Toast.makeText(MainActivity.this, rd.toString(), Toast.LENGTH_LONG).show();

Use:

RadioButton rb=(RadioButton)findViewById(selectID);
                Toast.makeText(MainActivity.this, rb.getText().toString(), Toast.LENGTH_LONG).show();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top