私は毎秒新しいデータを取得するアンドロイドのリストビューを持っています。今度はこのリストをスクロールしますが、新しいデータが到着するたびに、このリストの最初の要素に移動します。新しいデータが到着したときにビューが最初の要素に移動しないように振る舞いを変更することは可能ですか?リストビューのスクロールの振る舞いを変更する
if(arg1.getStringExtra("DATA")!=null){
text = arg1.getStringExtra("DATA").split("\n");
//Erstellt aus den Daten des Traceservices eine Liste bestehend aus Ergebnissen
//Result: <(technName,(min,max,invald,color,numeric),aktuellerWert>
List<Results> results = new ArrayList<Results>();
if(text.length>0){
for(String x:text){
Results r = new Results();
String []res =x.split("&&&");
Values v = dataDictionary.get(res[0]);
r.name=res[0];
r.setV(v);
if(res.length>1){
r.setCurrentValues(res[1]);
}
results.add(r);
}
ResultAdapter adapter = new ResultAdapter(getApplicationContext(), results);
lv.setAdapter(adapter);
}
}
ResultAdapterは次のようになります:
public class ResultAdapter extends BaseAdapter {
private Context context;
private List<Results> resultList;
public ResultAdapter(Context context, List<Results> resultList) {
this.context = context;
this.resultList = resultList;
}
public int getCount() {
return resultList.size();
}
public Object getItem(int position) {
return resultList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
Results r = resultList.get(position);
return new ResultAdapterView(this.context, r);
}
}
、あなたがそれを必要とする場合はわからないが、
私は新しいデータを取得するたびに、私は次の操作を行いますResultAdapterViewは次のように実装されました:
class ResultAdapterView extends LinearLayout {
public ResultAdapterView(Context context, Results r) {
super(context);
this.setOrientation(HORIZONTAL);
LinearLayout.LayoutParams resParams;
TextView resName = new TextView(context);
resParams = new LinearLayout.LayoutParams(170, 25);
resParams.setMargins(1, 1, 1, 1);
resName.setPadding(0, 3, 0, 0);
resName.setText(r.v.getFriendlyName());
resName.setTextColor(Color.WHITE);
addView(resName, resParams);
if(r.v!=null){
if (!r.v.isNumeric()) {
TextView currVal = new TextView(context);
currVal.setText(r.currentValue);
currVal.setTextColor(Color.WHITE);
addView(currVal, resParams);
} else {
ResultView rv = new ResultView(context, r);
addView(rv, resParams);
}
}
}
}
ご協力いただきありがとうございます。
挨拶
クリスティン
アダプターにデータを追加するコードを示してください。 –
新しいデータをアダプタに挿入するコードを投稿できますか?それを挿入するか、アダプタ全体をリフレッシュするだけですか? –
これはコードです: –