checkedId上的大型int setoncheckedchangeListener

时间:2014-11-27 11:08:29

标签: java android xml nullpointerexception

每当我从checkedId收到id时,即使我已经为xml文件中的每个radiobutton声明了一个id,它也是一个非常长的int(例如2131034187)。我不知道是什么导致这个或如何解决它。这是我的代码。

XML布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:layout_gravity="right" />

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="" />

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

    <RadioButton
        android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />
    <RadioButton
        android:id="@+id/radio3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />
    <RadioButton
        android:id="@+id/radio4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />
    <RadioButton
        android:id="@+id/radio5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="" />
</RadioGroup>

Java类

holder.rbg = (RadioGroup)convertView.findViewById(R.id.radioGroup1);


        convertView.setTag(holder);
        holder.rbg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                Log.d("id", checkedId+"");
                 selections[position] = checkedId;
            }
});

错误日志

11-27 12:20:37.701: D/AbsListView(8560): unregisterIRListener() is called 
11-27 12:20:37.711: D/AbsListView(8560): unregisterIRListener() is called 
11-27 12:20:37.756: D/AbsListView(8560): unregisterIRListener() is called 
11-27 12:20:37.791: D/AbsListView(8560): unregisterIRListener() is called 
11-27 12:20:37.916: D/AbsListView(8560): onVisibilityChanged() is called, visibility : 4
11-27 12:20:37.916: D/AbsListView(8560): unregisterIRListener() is called 
11-27 12:20:38.921: D/id(8560): 2131034186
11-27 12:20:49.491: D/id(8560): 2131034188

1 个答案:

答案 0 :(得分:0)

在R.java中生成id是动态生成的类,在构建过程中创建以动态识别所有资产(从字符串到android小部件到布局),用于Android应用程序中的java类。

此类包含视图的所有ID,并且不能为1个字符长。

希望这有帮助。