2012-04-04 6 views
0

私は相対レイアウトに5つの列があるので、私はcsvファイルからデータを読み込み、必要なデータを対応する列に配置します。このための私のコードは以下の通りです:データの表示に問題があるAndroid

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.past_results); 

    final global gs = (global)getApplication(); 
    AlertDialog enter_alert = new AlertDialog.Builder(past_results.this).create(); 
    List<String[]> values = gs.read_csv(); 

    if(values==null){ 
      enter_alert.setTitle("Failed To Read"); 
      enter_alert.setMessage("Unable to Read File"); 
      enter_alert.setButton("Close", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface arg0, int arg1) {} 
      }); 
      enter_alert.show(); 
    return; 
    } 

    else{ 


     for(int i=3;i<values.size();i++){ 
      //loops through all the rows in the file first 3 rows are not needed 
      String date = values.get(i)[0].toString();//get the date value 
      String sn = values.get(i)[9].toString();//get the Unit S/N 
      String fzero = values.get(i)[10].toString();//get the f_zero value 
      String foffset = values.get(i)[11].toString();//get the f offset value 
      String ffactor = values.get(i)[12].toString();//get the f factor value 
      TextView datetext=new TextView(this); 
      TextView sntext=new TextView(this); 
      TextView fzerotext=new TextView(this); 
      TextView foffsettext=new TextView(this); 
      TextView ffactortext=new TextView(this); 

      datetext.setText(date); 
      datetext.setId(1+(i-3)*5); //is this the right way to make an id? 
      datetext.setTextSize(15); 

      sntext.setText(sn); 
      sntext.setId(2+(i-3)*5); 
      sntext.setTextSize(15); 

      fzerotext.setText(fzero); 
      fzerotext.setId(3+(i-3)*5); 
      fzerotext.setTextSize(15); 

      foffsettext.setText(foffset); 
      foffsettext.setId(4+(i-3)*5); 
      foffsettext.setTextSize(15); 

      ffactortext.setText(ffactor); 
      ffactortext.setId(5+(i-3)*5); 
      ffactortext.setTextSize(15); 



      RelativeLayout.LayoutParams dateparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      RelativeLayout.LayoutParams snparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      RelativeLayout.LayoutParams fzeroparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      RelativeLayout.LayoutParams foffsetparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      RelativeLayout.LayoutParams ffactorparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 

      dateparams.addRule(RelativeLayout.ALIGN_LEFT,R.id.past_date); 
      snparams.addRule(RelativeLayout.ALIGN_LEFT,R.id.past_sn); 
      fzeroparams.addRule(RelativeLayout.ALIGN_LEFT,R.id.past_f_zero); 
      foffsetparams.addRule(RelativeLayout.ALIGN_LEFT,R.id.past_f_offset); 
      ffactorparams.addRule(RelativeLayout.ALIGN_LEFT,R.id.past_f_factor); 

      if (i==3){ 


       dateparams.addRule(RelativeLayout.BELOW,R.id.past_date); 
       snparams.addRule(RelativeLayout.BELOW,R.id.past_sn); 
       fzeroparams.addRule(RelativeLayout.BELOW,R.id.past_f_zero); 
       foffsetparams.addRule(RelativeLayout.BELOW,R.id.past_f_offset); 
       ffactorparams.addRule(RelativeLayout.BELOW,R.id.past_f_factor); 
      } 
      else{ 
       dateparams.addRule(RelativeLayout.BELOW,1+(i-3)*5); 
       snparams.addRule(RelativeLayout.BELOW,2+(i-3)*5); 
       fzeroparams.addRule(RelativeLayout.BELOW,3+(i-3)*5); 
       foffsetparams.addRule(RelativeLayout.BELOW,4+(i-3)*5); 
       ffactorparams.addRule(RelativeLayout.BELOW,5+(i-3)*5); 
      } 
      datetext.setLayoutParams(dateparams); 
      sntext.setLayoutParams(snparams); 
      fzerotext.setLayoutParams(fzeroparams); 
      foffsettext.setLayoutParams(foffsetparams); 
      ffactortext.setLayoutParams(ffactorparams); 

     }//end of for loop 
    }//end of if 


    }; 

}

結果はちょうど何も表示されていないされて、今私は、これは私がいたときのようにパラメータを設定していますかによるものであると疑いを持っていますデバッグ私はリストの値を見ることができます。私は何が間違っているのか見ていますか?何も表示されていない

+0

XMLレイアウトの使用を検討しましたか? – JRaymond

+0

私はそれぞれの列に未知数の値を追加する必要があるとき、私はどのようにすればよいのか分かりません – yawnobleix

+0

レイアウトに新しいTextViewをどこに追加しますか? – Simon

答えて

0

理由は、あなたが最初に

setContentView(R.layout.past_results); 

を呼び出していることを、これはあなたがpast_results.xmlファイルにあるレイアウトを表示するシステムを語っていますさ。

新しく作成したTextViewを画面に表示させたい場合は、そのxmlファイルから親レイアウトへの参照を取得する必要があります。そして、あなたはJRaymondが指摘したように、この

relLayout.addView(datetex); 
relLayout.addView(sntext); 
etc... 

などの呼び出しは、しかし、このような何かを達成するための好ましい方法は、あなたが正確にあなたが望むどのようにデータを表示するために特別に作成アダプタのいくつかの種類になります。すべての個々のビューのハードコード作成に手間をかけずに、「手作業で」作成してください。