我有一個 listView,我在其中多次放置就緒視圖。這個視圖里面有一個編輯文本。問題是,當我在編輯文本中輸入值時,它們消失了。我想這是一個焦點問題,但我無法弄清楚。
這是我的 ListView 配接器的 GetView 方法
public override View GetView(int position, View convertView, ViewGroup parent)
{
LayoutInflater layoutInflater = ((RegisterActivity3)context).LayoutInflater;
View view = layoutInflater.Inflate(Resource.Layout.seekbarvalue_template, parent, false);
TextView tvValueName = (TextView)view.FindViewById<TextView>(Resource.Id.tvValueName);
TextView tvAnotation = (TextView)view.FindViewById<TextView>(Resource.Id.tvAnotation);
TextView tvMetric = (TextView)view.FindViewById<TextView>(Resource.Id.tvMetric);
EditText etVlaue = (EditText)view.FindViewById<EditText>(Resource.Id.etValue);
ValueSeekBar temp = objects[position];
if (temp != null)
{
tvValueName.Text = temp.ValueName;
tvMetric.Text = temp.Metric;
tvAnotation.Text = temp.Anotation;
}
return view;
}
視頻供參考:https ://im2.ezgif.com/tmp/ezgif-2-86070710e4.gif
uj5u.com熱心網友回復:
你總是在創建一個新的視圖。除非 convertView 為空,否則您不應該這樣做。如果 convertView 不為空,您應該重用該視圖。
現在還建議只使用 RecyclerView 而不是 ListView。
例子:
public override View GetView(int position, View convertView, ViewGroup parent){
if(convertView == null) {
LayoutInflater layoutInflater = ((RegisterActivity3)context).LayoutInflater;
convertView = layoutInflater.Inflate(Resource.Layout.seekbarvalue_template, parent, false);
}
//Now update convertView
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/406441.html
標籤:
上一篇:在回圈或其他方式中寫入資料
