2014-10-28 8 views
0

휴대 전화에 라디오 버튼을 저장했을 때 로컬로 저장하는 데 문제가 있습니다. 내 목록보기를 스크롤 할 때마다 체크 된 라디오 버튼이 사라지고 인터넷을 확인했지만 10 번 중 9 번 라디오 버튼이 내 것과 달리 XML 파일로 만들어집니다.프로그래밍 방식으로 만들어진 라디오 버튼을 저장하는 방법, 그래서 그들은 스크롤 할 때 사라지지 않습니까?

public class Bouw_onderdeel extends Activity { 
public String[] naam = {"Bouw onderdeel", "Kapconstructie","Kapconstructieve bevesiging","Doorbuiging","Vochtinwerking","Dakconstructie","Constructieve bevesiging","Doorbuiging","Vochtinwerking","Waterkerende lagen","Waterdichtheid (folie)laag","Lekwaterafvoerend vermogen","Detaillering aan dakvoet","Thermischeisolatie","Bevestiging","Aansluitdetails","Isolerend vermogen","Dakpannen en vorsten","Conditie dakpannen en vorsten","Breukschade","Vorstschade","Afschilfering","Aangroei algen en mos"}; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.bouwonderdeel_layout); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
    //RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.layoutBouwonderdeel); 

    ListView list = new ListView(this); 
    list.setAdapter(new MyAdapter(this, naam)); 

    setContentView(list); 

} 
private class MyAdapter extends ArrayAdapter<String> { 

    public MyAdapter(Context context, String[] strings) { 
     super(context, -1, -1, strings); 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     //Making the listview. 
     LinearLayout listLayout = new LinearLayout(Bouw_onderdeel.this); 
     listLayout.setLayoutParams(new AbsListView.LayoutParams(
       AbsListView.LayoutParams.WRAP_CONTENT, 
       AbsListView.LayoutParams.WRAP_CONTENT)); 
     listLayout.setId(5000); 
     //Making the radiogroup 
     RadioGroup rbg = new RadioGroup(Bouw_onderdeel.this); 
     rbg.setId(3927); 
     rbg.setLayoutParams(new AbsListView.LayoutParams(
       AbsListView.LayoutParams.WRAP_CONTENT, 
       AbsListView.LayoutParams.WRAP_CONTENT) 
       ); 
     rbg.setOrientation(LinearLayout.HORIZONTAL); 
     //Add the textviews inside the listview 
     TextView listText = new TextView(Bouw_onderdeel.this); 
     listText.setId(5001); 
     //For every listview add 5 radiobuttons 
     for (int i = 0; i < 5; i++) { 
        RadioButton rbtn = new RadioButton (Bouw_onderdeel.this); 
        rbg.addView(rbtn); 
     } 

     rbg.setGravity(Gravity.CENTER_HORIZONTAL);  
     rbg.setOnCheckedChangeListener(new OnCheckedChangeListener() 
     { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 
       //Spot where I wanna save I guess? 
      } 
     }); 
     listLayout.setGravity(Gravity.CENTER); 
     //Add the radiogroup to the listview. 
     listLayout.addView(rbg); 
     //Add the listtext to the view. 
     listLayout.addView(listText); 

     listText.setText(super.getItem(position)); 

     return listLayout; 
    } 
} 

답변

0

다음과 같이 getView 메소드를 수정하십시오.

@Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      LinearLayout listLayout = null; 
      if (convertView == null) { 
       // Making the listview. 
       listLayout = new LinearLayout(Bouw_onderdeel.this); 
       listLayout.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, AbsListView.LayoutParams.WRAP_CONTENT)); 
       listLayout.setId(5000); 
       // Making the radiogroup 
       RadioGroup rbg = new RadioGroup(Bouw_onderdeel.this); 
       rbg.setId(3927); 
       rbg.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, AbsListView.LayoutParams.WRAP_CONTENT)); 
       rbg.setOrientation(LinearLayout.HORIZONTAL); 
       // Add the textviews inside the listview 
       TextView listText = new TextView(Bouw_onderdeel.this); 
       listText.setId(5001); 
       // For every listview add 5 radiobuttons 
       for (int i = 0; i < 5; i++) { 
        RadioButton rbtn = new RadioButton(Bouw_onderdeel.this); 
        rbg.addView(rbtn); 
       } 

       rbg.setGravity(Gravity.CENTER_HORIZONTAL); 
       rbg.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(RadioGroup group, int checkedId) { 
         // Spot where I wanna save I guess? 
        } 
       }); 
       listLayout.setGravity(Gravity.CENTER); 
       // Add the radiogroup to the listview. 
       listLayout.addView(rbg); 
       // Add the listtext to the view. 
       listLayout.addView(listText); 

       listText.setText(super.getItem(position)); 

       convertView = listLayout; 
       convertView.setTag(listLayout); 
      } else { 
       listLayout = (LinearLayout) convertView.getTag(); 
      } 
      return listLayout; 
     } 
+0

정말로 도움을 주셔서 감사합니다.하지만 첫 번째 라디오 버튼을 확인하고 아래로 스크롤하면 상단에서 사라지고 마지막 listitem 아래에 배치됩니다. – Mernayi

+0

동일한 항목이 두 번 반복됩니다. 그래서, 당신은 그런 문제에 직면하고 있습니다. –

+0

나는 당신이 무엇을 의미하는지 완전히 확신하지 못합니다. 사전에 감사드립니다 – Mernayi

관련 문제