单选按钮值为EditText空间

时间:2014-12-05 16:17:47

标签: android xml radio-button

嗨,大家好我想要它,以便用户可以选择单位进行计算。

我只是单选按钮,我正在尝试选择一个单选按钮,获取存储在那里的字符串的值并显示它。

到目前为止,我正在接受我的选择,当我开始设置应用程序崩溃的价值时。

任何想法或帮助都会很棒!

Java类

  public void Un()
    {

        Mq = (EditText) findViewById(R.id.u1);
        EditText c = (EditText) findViewById(R.id.u1);
        c.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                show2();
            }
        });
    }
    public void show2() {

        final Dialog h = new Dialog(Sol.this);
        h.setTitle("Units");
        h.setContentView(R.layout.molunit);
        Button b1 = (Button) h.findViewById(R.id.b1);
        Button b2 = (Button) h.findViewById(R.id.b2);


        b1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                RadioGroup types = (RadioGroup) findViewById(R.id.radioUnits);

                switch (types.getCheckedRadioButtonId()) {

                    //  case R.id.M:
                    case R.id.M:
                        Mq.setText("M");
                      //  h.dismiss();


                    case R.id.mM:

                        Mq.setText("mM");
                       // h.dismiss();


                    case R.id.uM:
                        Mq.setText("M");
                       // h.dismiss();

                    case R.id.pM:


                        Mq.setText("M");
                      //  h.dismiss();

                    case R.id.cM:

                        Mq.setText("M");
                      //  h.dismiss();

                }

            }
        });
        b2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                h.dismiss();
            }
        });
        h.show();
    }

main.xml中

  <EditText
        android:id="@+id/u1"
        android:background="@android:color/holo_red_dark"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/Text1"
        android:layout_above="@+id/Text2"
        android:layout_toRightOf="@+id/button5"
        android:layout_toEndOf="@+id/button5"
        android:inputType="textAutoComplete" 
/>

Units.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent">

<RadioGroup
    android:id="@+id/radioUnits"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RadioButton
        android:layout_width="match_parent"
        android:layout_height="75dp"
        android:text="@string/M"
        android:id="@+id/M"
        android:layout_gravity="center_horizontal"
        android:checked="true" />

    <RadioButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/mM"
        android:inputType="text"
        android:id="@+id/mM"
        android:layout_gravity="center_horizontal"/>
    <RadioButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/uM"
        android:id="@+id/uM"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.09"/>
    <RadioButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/pM"
        android:id="@+id/pM"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.09"/>
    <RadioButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/cM"
        android:id="@+id/cM"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.09"/>

</RadioGroup>

    <Button
    android:id="@+id/b1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Set"
    android:layout_weight="0.15"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="68dp"
        android:layout_marginBottom="133dp" />

    <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel"
        android:layout_gravity="right"
        android:layout_alignTop="@+id/b1"
        android:layout_toRightOf="@+id/b1"
        android:layout_toEndOf="@+id/b1"
        android:layout_marginLeft="77dp" />

</RelativeLayout>

在Logs中,当我点击set(b1)

时,我得到了这个
12-05 16:38:55.406      743-743/com.example.se414011.biochem1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.example.se414011.biochem1.Sol$8.onClick(Sol.java:262)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

有更多信息后编辑

了解h.setContentView(R.layout.Units)

@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    addListenerOnButton();
    ...

变化

findViewById(R.id.radioUnits)

h.findViewById(R.id.radioUnits)

说明:radioUnits位于units.xml,并设置为对话框h的布局。 findViewById在没有任何对象之前查看活动的布局,其中setContentView(R.layout.main)缺少视图findViewById正在寻找。