매우 이상한 오류입니다. TextView와 비슷한 것을했는데 모든 것이 매력처럼 작동하므로 라디오 버튼에서도 작동해야한다고 가정합니다.Android에서 멀티 라디오 버튼이 표시되지 않습니다 - 이상한 동작
android의 라디오 버튼에 문제가 있습니다. 하나의 버튼에 값을 설정하면 모든 것이 정상입니다. 그러나 장치를 회전 시키면 이상한 일이 일어나기 시작합니다.
또는 값이 표시, 또는 모두 같은 값, 또는 이전에 설정되어 그 값을 클릭하는 것은 불가능합니다 (눈에 보이지 않는입니다) 나는 저장된 값을 확인 않았다
, 그리고 그들이되지 않습니다 승인. 누군가 내가 잘못하고있는 것을 나에게 설명 할 수 있습니까? 대단히 감사합니다.
코드 :
package com.example.radiobutton;
import java.util.ArrayList;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
/**
*
*/
public class MainFragment extends Fragment {
private ArrayList<ItemL> mItemList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mItemList = HolderItemL.get(getActivity()).getList() ;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_main, parent, false);
LinearLayout topLayout = (LinearLayout) v.findViewById(R.id.top_layout);
showPanel(topLayout, inflater, parent);
return v;
}
private void showPanel(LinearLayout topLayout, LayoutInflater inflater, ViewGroup parent) {
for(int i = 0; i < mItemList.size(); i++){
final ItemL product = (ItemL) mItemList.get(i);
View aLayout = inflater.inflate(R.layout.radio_layout, parent, false);
((ViewGroup) topLayout).addView(aLayout);
View rrrt = inflater.inflate(R.layout.group_radio_layout, parent, false);
((ViewGroup) aLayout).addView(rrrt);
RadioGroup radioGroup = (RadioGroup) rrrt.findViewById(R.id.aditivs_radio_group);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId) {
case R.id.radio_alergen_yes_contian:
product.setContain(true);
break;
case R.id.radio_alergen_not_contain:
product.setContain(false);
break;
}
}
});
RadioButton yesContain = (RadioButton) rrrt.findViewById(R.id.radio_alergen_yes_contian);
RadioButton notContain = (RadioButton) rrrt.findViewById(R.id.radio_alergen_not_contain);
if(product.isContain() != null){
if(product.isContain().booleanValue()){
yesContain.setChecked(true);
System.out.println("#contain yes#");
}
else{
notContain.setChecked(true);
System.out.println("#contain not#");
}
}
}
}
}
class HolderItemL {
public static ArrayList<ItemL> listItems = new ArrayList<ItemL>();
private static HolderItemL sHolderItemL;
private Context mAppContext;
private HolderItemL(Context context){
mAppContext = context;
for(int i = 0; i < 2; i++){
ItemL l = new ItemL();
listItems.add(l);
}
}
public static HolderItemL get(Context c) {
if(sHolderItemL == null){
sHolderItemL = new HolderItemL(c.getApplicationContext());
}
return sHolderItemL;
}
public ArrayList<ItemL> getList(){
return listItems;
}
}
class ItemL {
private Boolean contain;
public Boolean isContain() {
return contain;
}
public void setContain(boolean contain) {
this.contain = contain;
}
}
XML : XML
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
Activiti_main : Fragment_main
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
XML : group_radio_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RadioGroup
android:id="@+id/aditivs_radio_group"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/radio_alergen_yes_contian"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="yes_contian" />
<RadioButton
android:id="@+id/radio_alergen_not_contain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="not_contain" />
</RadioGroup>
</LinearLayout>
XML : radio_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/alergen_name_title"
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:text="title" />
</LinearLayout>