使用表单创建对象,将其添加到另一个活动的列表中

时间:2015-04-04 23:28:28

标签: android android-intent android-activity android-radiogroup android-radiobutton

我想从放射线组内的radiobutton文本中检索一个值。这听起来很简单,但我无法将其用于工作,因为它总是给我一个空值。

这是我的代码:

public class NewMovie extends FragmentActivity {    
RadioGroup rating;
RadioButton selectedRating;
int selectedRatingIndex;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_movie_layout);
        rating = (RadioGroup) findViewById(R.id.rating);
        onClickListenerButton();
}

public void onClickListenerButton()
{
    selectedRatingIndex = rating.getCheckedRadioButtonId();
    final RadioButton selectedRating = (RadioButton) findViewById(selectedRatingIndex);
    intent.putExtra("rating", selectedRating.getText().toString());
    setResult(RESULT_OK, intent);
    finish();
}
}

XML:     

        <RadioButton
            android:id="@+id/U"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/U" />

        <RadioButton
            android:id="@+id/PG"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/PG" />

        <RadioButton
            android:id="@+id/r12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/r12" />

        <RadioButton
            android:id="@+id/r15"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/r15" />

        <RadioButton
            android:id="@+id/r18"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/r18" />
    </RadioGroup>

由于某种原因,始终是nullpointerexception。

不知道它是否有助于上下文,但我试图从活动1转到活动2,在活动2(我上面显示的那个)显示放射组,然后用户提交其中一个答案和然后在活动1中使用答案。

1 个答案:

答案 0 :(得分:0)

您必须在单选按钮中输入默认选项,请尝试以下操作

  1. 将所有单选按钮放在xml

    中的单选按钮组中
    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    
          <RadioButton
            android:id="@+id/U"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/U"
            android:checked="true" />  // deafult select
    
            //other radio buttons  
    </RadioGroup>
    
  2. 启动活动中的所有单选按钮

    radioU=(RadioButton) findViewById(R.id.U);
    
  3. 检查按钮点击事件中的选择

    public void onClickListenerButton(View v) {
    
    if(radioU.isChecked())
    {
        intent.putExtra("rating", getResources().getString(R.string.U));    
    }
    else if(radioPG.isChecked())
    {
        intent.putExtra("rating", getResources().getString(R.string.PG));   
    }
    
    setResult(RESULT_OK, intent);
    finish();
    }