2013-04-20 2 views
0
public AdapterClass(Context a, int resourceID, List <Info> entries) { 
    super(a, resourceID, entries); 
    this.layoutResource = resourceID; 
} 

@ 
Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    final Object custom = getItem(position); 
    LinearLayout rowView = null; 
    if (convertView == null) { 
     rowView = new LinearLayout(getContext()); 
     LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     vi.inflate(layoutResource, rowView); 
    } else 
     rowView = (LinearLayout) convertView; 

    if (custom != null) { 

    } 
    return rowView; 
} 

Я передаю две различные схемы во время выполнения, как я могу определить, какую раскладку я передаю в методе getView(). Я использую ArrayAdapter.определившего макет во время выполнения в ListView

+0

где находится полный код? –

+0

@PankajKumar: какой код вам потребуется, сделайте u хотите, как я передаю его адаптеру. – Kevin

+0

@kevin проверить мой ответ –

ответ

1

Вы можете использовать макет ID, чтобы проверить, макет передается

if(passedresourceID == R.layout.layout1) 
{ 
    //do something 
} 
else if(passedresourceID == R.layout.layout2) 
{ 
    //do something 
} 
+0

Спасибо sankar ... прошелResouceID это int и R.layout.layout1 ... это сработает. – Kevin

+1

ya. оба являются int man. Конечно, это сработает. –

1

Вы должны быть в состоянии проверить против родительского идентификатора, который был передан в getView()

public View getView(int position, View convertView, ViewGroup parent) { 

switch (parent.getId()){ //check your ids here 
case (R.layout.layoutToCheck): 
break; 
case (R.layout.otherLayoutToCheck): 
... 

final Object custom = getItem(position); 
LinearLayout rowView = null; 
if (convertView == null) { 
    rowView = new LinearLayout(getContext()); 
    LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    vi.inflate(layoutResource, rowView); 
+0

Спасибо, я не получаю R.id.layoutToCheck, хотя у меня есть идентификатор для него в R.Java – Kevin

+0

'R.id.YourLayoutName' возвращает' id', который содержится в 'R.java' – codeMagic

+0

Извините, у меня есть отредактировал мой пост. Торопился. – codeMagic

Смежные вопросы