Вы уверены, что хотите добавить myView
в качестве подпункта целью linearday1
и linearday
? Потому что это не сработает.
Если вы хотите этого, вы должны раздуть макет дважды:
LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView1 = inflater.inflate(R.layout.activity_panchang_cal_inflate, null);
View myView2 = inflater.inflate(R.layout.activity_panchang_cal_inflate, null);
linearday1.addView(myView1);
linearday.addView(myView2);
Однако я верю, что вы на самом деле хотите добавить linearday1
и linearday
, как подразделы вид myView
- я неправильно?
myView.addView(linearday1);
myView.addView(linearday);
EDIT: Если вы хотите использовать код выше 30-кратного, вы можете использовать цикл как это:
View[] linearday = new View[30];
/** Save your linearday layouts in this array **/
LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < 30; i++) {
View myView inflater.inflate(R.layout.activity_panchang_cal_inflate, null);
linearday[i].addView(myView);
}
и для второго блока кода это очень похоже:
View[] linearday = new View[30];
/** Save your linearday layouts in this array **/
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView inflater.inflate(R.layout.activity_panchang_cal_inflate, null);
for (int i = 0; i < 30; i++) {
myView.addView(linearday[i]);
}
EDIT 2:
в соответствии с просьбой в комментарии s, вы хотите получить более подробную информацию о процессе заполнения массива, когда ваши представления хранятся в XML-файле:
Существует два способа сделать это. Если ваши макеты имеют совершенно случайные идентификаторы в то файл XML, то вы должны сделать это следующим образом:
View[] linearday = new View[30];
linearday[0] = findViewById(R.id.linearday_hello);
linearday[1] = findViewById(R.id.linearday_window);
linearday[2] = findViewById(R.id.linearday_test);
// ... and so on
Однако, если они имеют общую картину и лишь по мере увеличения индекса (например linearday0
, linearday1
, linearday2
) , то вы можете сократить код, как это:
View[] linearday = new View[30];
for (int i = 0; i < 30; i++) {
int resid = getResources().getIdentifier("linearday" + i, "id", getPackageName());
linearday[i] = findViewById(resid);
}
я пытаюсь добавить XML, который имеет относительное расположение в эти два макетах linearday1 и linearday – bipin
благодаря это действительно сработало, что если я хочу использовать это для как 30 раз ? – bipin
Что именно? Первый или второй кодовый блок? –