2013-01-23 40 views
4

我有edittext和-/+按鈕。當我點擊按鈕更改edittext值如增加/減少當listview滾動那個時間edittext設置默認值

當我設定值一樣和滾動列表視圖的EditText設定值作爲默認值0一樣

我期運用這種方式

public View getView(final int position, View convertView,ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View connection; 
     final ViewHolder holder; 
     connection = new View(context);   
     connection = inflater.inflate(R.layout.list_row_modified, null); 
     holder = new ViewHolder(); 
     holder.up = (Button) connection.findViewById(R.id.btn_plus); 
     holder.down = (Button) connection.findViewById(R.id.btn_minus); 
     holder.date = (TextView) connection.findViewById(R.id.text_date); 

     //onClick with holder.up/holder.down 

     connection.setTag(holder); 
     return connection; 
    } 
+0

發佈您的代碼.. – R9J

+0

@raj查看我的代碼 – Harshid

回答

0

的問題在你的情況是你的getView被稱爲每個打開你的列表視圖(這是很好),而且當你向上/向下滾動。爲了減少內存使用量,listview將銷燬listview可見部分之外的所有元素,並在您向後滾動時再次創建它們。

所以,爲了避免這種情況,你可以使用:

if (convertView == null) { 
    holder = new ViewHolder(); 
    holder.up = (Button) connection.findViewById(R.id.btn_plus); 
    holder.down = (Button) connection.findViewById(R.id.btn_minus); 
    holder.date = (TextView) connection.findViewById(R.id.text_date); 
} 

convertView.setTag(holder); 
return convertView; 

有關如何創建一個列表視圖內的EditText詳細的教程,請參閱:http://vikaskanani.wordpress.com/2011/07/27/android-focusable-edittext-inside-listview/

+0

感謝您快速回復我現在要做什麼? – Harshid

+0

從編輯的答案中嘗試解決方案。目標是隻在第一次創建列表視圖時創建edittext。希望它有幫助.. –

+0

從我這裏是一個+1,爲好問題。 –

0

您錯誤地使用了ViewHolder模式。既然你有一個EditText的小列表,你甚至不需要它。

正如Milos所說,它將循環使用您的列表項,以便您在getView()調用時將值設置爲0。您必須保留一些參考值並將它們設置爲getView()方法。