2017-05-20 18 views
-1

実行時にapp.based数の電子メールレイアウト番号が変更されるような電子メールをデザインするのを手伝ってください。実行時に同じレイアウトを複数回追加する方法

for (int i=10;i<14;i++) { 
LinearLayout lay = (LinearLayout) findViewById(R.id.veticaltoinsert); 
View child = getLayoutInflater().inflate(R.layout.issuelayout, null); 
child.setId(i); 
lay.addView(child); 
} 

答えて

0

子ビューのIDは、そのように設定することはできません。 以下のコードはテストされていません。

// this part copied from somewhere in sf, I don't remember exactly 
// random a new integer 
private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1); 
// create a view id 
public static int generateViewId() { 
    for (;;) { 
     final int result = sNextGeneratedId.get(); 
     // 
     int newValue = result + 1; 
     if (newValue > 0x00FFFFFF) newValue = 1; 
     if (sNextGeneratedId.compareAndSet(result, newValue)) { 
      return result; 
     } 
    } 
} 
// In this party, just use above method and optimise a bit. 
private void something() { 
    //.... 
    LinearLayout lay = (LinearLayout) findViewById(R.id.veticaltoinsert); 
    for (int i=10;i<14;i++) { 
     View child = getLayoutInflater().inflate(R.layout.issuelayout, null); 
     child.setId(generateViewId()); 
     lay.addView(child); 
    } 
    // 
} 
関連する問題