2012-03-18 12 views
0

私は空のLinearLayoutを持っています。それにTextViewの動的数値を追加する必要があります。私は以下のコードを使用した場合しかし、唯一の最初のTextViewが示されています:プログラムでテキストビューを追加

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String[] listofnumbers = new String[1000]; 
    for (int i = 0 ; i < 1000 ; ++i) { 
     listofnumbers[i] = "null"; 
    } 

    Context context = getBaseContext(); 

    String text = null; 

    Uri uri = Uri.parse("content://sms"); 
    Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); 

    String[] columnNames = cursor.getColumnNames(); 
    LinearLayout lv = new LinearLayout(context); 
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, dip(48)); 

    boolean v = true; 
    while (cursor.moveToNext()) 
    { 
     String numberString = (cursor.getString(cursor.getColumnIndexOrThrow("address"))).replace(" ", ""); 

     int i = 0; 
     boolean numberNotPresent = true; 
     for ( ; listofnumbers[i] != "null" ; ++i) { 
      if (numberString.equals(listofnumbers[i]) ) { 
       numberNotPresent = false; 
      } 
     } 
     if (numberNotPresent == true) { 
      text = (CharSequence) "From: " + cursor.getString(cursor.getColumnIndexOrThrow("address")) + ": " + cursor.getString(cursor.getColumnIndexOrThrow("body")); 
      listofnumbers[i] = numberString; 
      TextView tv = new TextView(this); 
      tv.setText(text); 
      tv.setLayoutParams(textViewParams); 
      lv.addView(tv); 
     } 
    } 
    setContentView(lv); 
} 
私が間違っている

+0

あなたは 'if(numberNotPresent == true)'の条件が満たされていると確信していますか?おそらくいくつかのロギングを追加して、実際にそのコードに入っていて、別のTextViewを追加しようとしているのを確認してください。 – dldnh

+0

もう一度条件を削除してもう一度チェックして、TextViewを取得した場合、そして、私は@dldnhと一緒にログをとるつもりです。 – noob

+0

線形レイアウトのパラメータを設定します –

答えて

3

は、これらの2行を変更しよう:これらと

LinearLayout lv = new LinearLayout(context); 
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, dip(48)); 

LinearLayout lv = new LinearLayout(context); 
     lv.setOrientation(LinearLayout.VERTICAL); 
     LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

は基本的に使用すると、1つは水平であるデフォルトとして垂直にLVののLinearLayoutの方向を設定する必要があります。

1

私は確信していませんが、それぞれのtextView fill_parent paramを設定することがありますか? 1番目のtextViewはすべてのレイアウトに表示されます。

関連する問題