2016-12-26 145 views
1

我有一个导航活动由碎片组成,并且我有一个连接到onClickListener的按钮,该按钮运行onClick方法。该应用程序正常打开也是如此的片段,但每当我按一下按钮,应用程序崩溃添加getCheckedRadioButtonId()时应用程序崩溃

public class FirstFragment extends Fragment implements View.OnClickListener { 

View myView; 

private RadioGroup radioGroup; 
private Button btnDisplay; 


@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View myView = inflater.inflate(R.layout.first_layout, container, false); 
    btnDisplay = (Button) myView.findViewById(R.id.btnDisplay); 
    btnDisplay.setOnClickListener(this); 
    return myView; 
} 

@Override 
public void onClick(View v) { 
    radioGroup = (RadioGroup) v.findViewById(R.id.radio); 

    int selectedId = radioGroup.getCheckedRadioButtonId(); 
    } 
} 

通过一些测试,我发现,这条线是造成问题。我需要这一行,因为我想selectedId进入一个单选按钮

int selectedId = radioGroup.getCheckedRadioButtonId(); 

没有这一行,打开应用程序和片段正常,单击该按钮时,应用程序不会崩溃,我加了一个烤面包和它没有上面的代码行工作正常。任何人都可以解释如何解决此问题?谢谢

回答

1

将这个行onCreateview

radioGroup = (RadioGroup) v.findViewById(R.id.radio); 

喜欢这个

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View myView = inflater.inflate(R.layout.first_layout, container, false); 
    radioGroup = (RadioGroup) myView .findViewById(R.id.radio); 
    btnDisplay = (Button) myView.findViewById(R.id.btnDisplay); 
    btnDisplay.setOnClickListener(this); 
    return myView; 
} 
+0

谢谢你,工作 – Taha

+0

你的欢迎,快乐编码 –

1

找到你RadioGroup考虑不被点击,但在片段的根认为,所以这行:

radioGroup = (RadioGroup) v.findViewById(R.id.radio); 

更改为此:

radioGroup = (RadioGroup) myView.findViewById(R.id.radio); 

希望它可以帮助...

+0

这是个好主意,但它并没有OnClick方法里面工作,快速的学习能力说把那个在onCreateView方法行,工作 – Taha

相关问题