Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you have small number of possible variants (on your screenshots I can see 2 different list items) You have two possible variants:</p> <ol> <li><p>Setup count of different types by <a href="http://developer.android.com/reference/android/widget/BaseAdapter.html#getViewTypeCount%28%29" rel="noreferrer">this</a> method, and provide <a href="http://developer.android.com/reference/android/widget/BaseAdapter.html#getItemViewType%28int%29" rel="noreferrer">type</a> for every item - and you can use convertView.</p></li> <li><p>Create "full" list item view and set visibility for elements, that you don't want to see in particular item.</p></li> </ol> <p>Some code for #2:</p> <pre><code>public class ListTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); List&lt;Element&gt; list = new ArrayList&lt;Element&gt;(); list.add(new Element(0)); list.add(new Element(0)); list.add(new Element(1)); list.add(new Element(0)); list.add(new Element(1)); list.add(new Element(1)); list.add(new Element(0)); list.add(new Element(0)); list.add(new Element(1)); list.add(new Element(1)); list.add(new Element(1)); list.add(new Element(0)); list.add(new Element(0)); list.add(new Element(1)); list.add(new Element(0)); list.add(new Element(0)); ((ListView) findViewById(android.R.id.list)).setAdapter(new SampleAdapter(this, list)); } private class SampleAdapter extends BaseAdapter { private List&lt;Element&gt; list; private Context context; public SampleAdapter(Context context, List&lt;Element&gt; list) { this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @Override public Element getItem(int position) { return list.get(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) switch (getItemViewType(position)) { case 0: convertView = new CheckBox(context); break; default: convertView = new Button(context); break; } // Output here shows that you can lay on getItemViewType(position) as indicator of convertView type or structure Log.e("test", getItemViewType(position) + ": " + convertView.getClass().getSimpleName()); return convertView; } @Override public int getItemViewType(int position) { return getItem(position).type; } @Override public int getViewTypeCount() { return 2; } @Override public long getItemId(int position) { return position; } } private class Element { public int type; public Element(int type) { this.type = type; } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload