Android меняет макет в зависимости от оператора if
Я пытаюсь раздуть вид в зависимости от размера экрана, чтобы я мог использовать разные макеты
Я пробовал следующее
double screen_size = 8
if screen_size >= 10 {
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflator.inflate(R.layout.mylist, parent, false);
}
if screen_size >= 5 && screen_size <=9){
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
TextView textview1 = (TextView) row.findViewById(R.id.textView1);
Я получаю ошибку на Textview
поговорка row
не может быть решена даже до if
заявление выполняется
Если я изменю на
double screen_size = 8
if screen_size >= 10 {
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
if screen_size >= 5 && screen_size <=9){
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
View row = layoutInflator.inflate(R.layout.mylist, parent, false);
TextView textview1 = (TextView) row.findViewById(R.id.textView1);
он работает нормально, но всегда работает макет mylist
вместо mylist2
Любые идеи, где я иду не так
Любая помощь приветствуется
отметка
3 ответа
Решение
Вы не используете его для просмотра:
row = (View)layoutInflator.inflate(R.layout.mylist2, parent, false);
Измените строку на линию выше, где бы вы ни находились.
Объявить row
за пределами if
утверждение, как это:
double screen_size = 8
View row = null;
if (screen_size >= 10 {
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
if (screen_size >= 5 && screen_size <=9){
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
TextView textview1 = (TextView) row.findViewById(R.id.textView1);
Объявите представление глобально и проверьте. это будет работать
View row =null;
double screen_size = 8
if screen_size >= 10 {
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
if screen_size >= 5 && screen_size <=9){
layoutInflator =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflator.inflate(R.layout.mylist2, parent, false);
}
TextView textview1 = (TextView) row.findViewById(R.id.textView1);