无法生成RadioButton

时间:2018-01-09 11:38:28

标签: android radio-button

我正在尝试使用intent.putExtra()将RadioButton发送到活动。 我使用字符串和其他对象,但我不知道如何创建RadioButton的实例。它的构造函数要求Context作为参数,它也没有简单的构造函数。有没有办法生成一个RadioButton对象而没有得到它没有这样的RadioButton radioButton = (RadioButton) findViewById(R.id.RadioButton);

编辑:澄清一下,我不想发送一个特定的RadioButton,只是向活动发出信号,要求它生成一个特性的RadioButton,以便下一个活动可以将它添加到自定义视图列表中使用适配器。

2 个答案:

答案 0 :(得分:0)

RadioButtonView,这意味着它属于View层次结构,无法在它们之间自由发送。

此外,意图只能发送Parcelable数据(视图不可分配)或Serializable数据。虽然技术上可以做到这一点,但对于任何情况来说这绝对是错误的方法(充其量你想要发送由单选按钮代表的数据)

不发送视图的主要原因是它与Context绑定。对于这种情况,您可以将上下文视为单个屏幕。您不希望在一个屏幕上有一个项目,只能在另一个屏幕上工作。

<强> ActivityA

public static final String EXTRA_RADIO = "EXTRA_RADIO";

Intent intent = new Intent(ActivityA.this, ActivityB.class);
intent.putExtra(EXTRA_RADIO, value);
startActivity(intent);

<强> ActivityB

public void onCreate(...) {
    ...

    RadioButton radio = findViewById(...);

    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        //examples - depending on data type
        String value = bundle.getString(ActivityA.EXTRA_RADIO);
        int value = bundle.getInteger(ActivityA.EXTRA_RADIO);

        radio.setText(value);
    }

    ...
}

答案 1 :(得分:-1)

您无法通过Caused by: java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207) at java.awt.Window.<init>(Window.java:535) at java.awt.Frame.<init>(Frame.java:420) at javax.swing.JFrame.<init>(JFrame.java:224) at com.google.gwt.dev.SwingUI$3.run(SwingUI.java:258) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:699) at java.awt.EventQueue$3.run(EventQueue.java:697) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:708) 发送Context,但您需要Intent建设。你可以在第二次活动中使用它。如果您要将RadioButton的标签作为RadioButton发送,请尝试以下操作:

<强> ActivityOne

String

<强> ActivityTwo

Intent i = new Intent(ActivityOne.this, ActivityTwo.class);
i.putExtra("label", "This is label");
startActivity(i);