android - ListView row finding incorrect View -
i have listview of plots listviewadapter has method addind data individual plot:
public void adddata(sensor sensor, float[] data) { double[] dat = array.convertall(data, x => (double)x); plot plot; if (_plotmap.trygetvalue(sensor, out plot)) { plot.adddata(dat); } }
this method uses 'sensor' argument determine plot data for. sensor maps plot via _plotmap. _plotmap generated each row added list so:
public override view getview(int position, view convertview, viewgroup parent) { view row = convertview; plotview pvplot; if (row == null) row = layoutinflater.from(_context).inflate(resource.layout.monitorplotlinelistviewrow, null, false); pvplot = row.findviewbyid<plotview>(resource.id.pvplot); var lineplot = new lineplot(_context, pvplot, _sensors[position], _application.xaxiswidthseconds, _panning, false, _frametime, 1000); if (!_plotmap.containskey(_sensors[position])) _plotmap.tryadd(_sensors[position], lineplot); return row; }
my issue here:
pvplot = row.findviewbyid<plotview>(resource.id.pvplot);
it randomly returns plotviews, not plotview row being generated. in advance.
edit: i've watched id's activity created , result (the getview method called bunch of times during oncreate):
- generates row 0 -> plot has id 0, convertview 0
- generates row 1 -> plot has id 1, convertview 1
- generates row 0 -> plot has id 0, convertview 0
- generates row 1 -> plot has id 0, convertview 0
- generates row 0 -> plot has id 0, convertview 0
- generates row 1 -> plot has id 0, convertview 0
so whatever reason, needed change xml file. height of listview 400dp, changing match_parent fixed this. see here: https://stackoverflow.com/a/16551030/6936275
Comments
Post a Comment