ListView動態重新整理某項Item,不重新整理整個列表
使用ViewHolder來重新整理某項資料,而不用每次都全部重新整理資料。
繼承BaseAdapter,新建ViewHolder類。
- public class TestListAdapter extends BaseAdapter {
- private Context mContext;
- private List<String> strList;
- public TestListAdapter(Context context, List<String> list) {
- super();
-
this.mContext
- this.strList = list;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return strList.size();
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
-
return position;
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
-
ViewHolder holder
- if (null == convertView) {
- convertView = LayoutInflater.from(mContext).inflate(R.layout.line, null);
- holder = new ViewHolder();
- holder.iDText = (TextView) convertView.findViewById(R.id.textView_id);
- holder.strText = (TextView) convertView.findViewById(R.id.textView_str);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- holder.iDText.setText(position + "");
- String str = strList.get(position);
- holder.strText.setText(str);
- return convertView;
- }
- private static class ViewHolder {
- private TextView iDText;
- private TextView strText;
- }
- public void updataView(int posi, ListView listView) {
- int visibleFirstPosi = listView.getFirstVisiblePosition();
- int visibleLastPosi = listView.getLastVisiblePosition();
- if (posi >= visibleFirstPosi && posi <= visibleLastPosi) {
- View view = listView.getChildAt(posi - visibleFirstPosi);
- ViewHolder holder = (ViewHolder) view.getTag();
- String txt = holder.strText.getText().toString();
- txt = txt + "++;";
- holder.strText.setText(txt);
- strList.set(posi, txt);
- } else {
- String txt = strList.get(posi);
- txt = txt + "++;";
- strList.set(posi, txt);
- }
- }
- }
- public class MainActivity extends Activity {
- private MainActivity mContext;
- private EditText idEdit;
- private TextView textView;
- private List<String>strList = new ArrayList<String>();
- private ListView listView;
- private TestListAdapter ListAdapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mContext = this;
- for (int i = 0; i <100; i++) {
- strList.add("test data");
- }
- idEdit = (EditText) findViewById(R.id.edittext_id);
- textView = (TextView) findViewById(R.id.textview_modify);
- listView = (ListView) findViewById(R.id.listview);
- ListAdapter = new TestListAdapter(mContext, strList);
- listView.setAdapter(ListAdapter);
- //動態重新整理
- textView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- String idStr = idEdit.getText().toString();
- int idInt = Integer.parseInt(idStr);
- ListAdapter.updataView(idInt, listView);//動態修改
- }
- });
- }
- }
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#FFFFFF"
- android:orientation="vertical">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="40dp"
- android:orientation="horizontal">
- <EditText
- android:id="@+id/edittext_id"
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:hint="put modify id"/>
- <TextView
- android:id="@+id/textview_modify"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="動態修改"
- android:textColor="#123456"/>
- </LinearLayout>
- <ListView
- android:id="@+id/listview"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- </ListView>
- </LinearLayout>
相關推薦
ListView動態重新整理某項Item,不重新整理整個列表
使用ViewHolder來重新整理某項資料,而不用每次都全部重新整理資料。 繼承BaseAdapter,新建ViewHolder類。 public class TestListAdapter extends BaseAdapter { private C
Android ListView動態刷新某項Item
ack static auto ids avi idt ica horizon extc 使用ViewHolder來刷新某項數據,而不用每次都全部刷新數據。 繼承BaseAdapter,新建ViewHolder類。 public class TestListAdap
動態導航跳轉,不重新整理狀態
jquery.cookie.js部分程式碼$("#add_nav").on("click","li",function(){ $("#add_nav").find("li").removeClass("active"); var index = $("#a
發現賣家服務市場某服務商BUG,不花錢免費提升店鋪轉化率!
很多人從雙十一知道了店小蜜,並且嘗試開通了機器人,不過開通之後大多數賣家都是一臉懵逼,為什麼?因為店小蜜開通後並不能直接使用,而是需要使用者去自行配置。那麼配置需要注意哪些問題呢? 首先,要了解自己店鋪的高頻聊天問題,這裡就涉及到聊天記錄分析,通常一家店鋪日常會有70%的問題是重複諮詢的
mysql查詢是否存在某條記錄,不存在則插入,存在則更新
在工作中,會遇到這樣的情形,查詢資料庫中是否存在一條記錄資訊,如果不存在則插入一條新的資訊,如果存在,則更新已有的資訊。 面對這樣的需求,之前採用的是先讀取一遍資料庫,判斷是否有資料,如果沒有則插入一條新資訊,如果有,則更新已有資訊,但是這種做法在高併發情況下可
flask之使用ajax實現點選左側邊欄,不重新整理顯示右邊內容
在實現點選左側導航欄,右側不重新整理頁面顯示網頁內容的方法有很多,可以通過ifram實現、可以使用div繫結a或者li的點選事件 阻止a的預設行為,用jQuery的load()可以來載入這個div,即將網頁放入div中,當然也可以用下面的方式實現,採用ajax技
form表單提交批量上傳檔案,不重新整理不跳轉頁面
jsp: <form action="inImg.do" method="post" enctype="multipart/form-data" target="nm_iframe"> <table> <tr>
定時不閃爍重新整理圖片,不重新整理頁面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
MyBatis 和 ibatis的動態SQL語句配置符號,不相容大於號、小於號等特殊符號問題
在XML對映SQL的檔案中,很多情況下會使用到大於號、小於號等特殊符號,這時候如果不進行控制是無法編譯通過的,這時候需要用到<![CDATA[ ]]>符號進行說明,將此類符號不進行解析,還有一種解決方法就是使用轉移字元,如,案例2,其實,這個問題不止在My
asp.net 點選重新整理按鈕,只重新整理驗證碼,不重新整理整個頁面
<asp:textbox runat="server" id="txtValueCode" class="yzm2"></asp:textbox><asp:Image ID="ImgCode" runat="server
vue——詳細頁返回列表頁,不重新整理,保留列表頁原來停留位置
經常有這樣的功能,從列表頁上選擇一項,跳到詳細頁,詳細頁看完,返回列表頁。這時,列表頁的元件會重新建立,也就是要重新從介面請求一次資料,並且會回到第一行,對於資料更新要求不高的業務來說,這樣會浪費資源,而且體驗頁不好(列表一共100條,滑動到了90條了,點進去看好明細,出來,
用js或者jquery動態給div追加內容,不覆蓋之前的內容
效果:js<div id="append">ss</div> <script> var divA = document.getElementById("append"
node裡只有js引擎是單執行緒,不代表整個node都是單執行緒
這裡是摘要一下關鍵的話: 我們可以用Ajax和Web Worker迴應這個誤解(javascript是單執行緒的,無法很好利用多核CPU)。當Ajax請求傳送之後,除非是同步請求,否則其餘的JavaScript程式碼會很快被執行到。在Ajax傳送完成,直到接收到響應的這段
ListView刷新某一項Item
第一個 span get try 使用 ref 如果 href bsp ListView現在已經很少被使用,但還是在這裏列出來說一下,有時候我們僅僅需要改變listView的某個Item,如果調用adapter的notifyDataSetChanged()方法效率不高,並且
Android TV 開發-listview(GridView)使用鍵盤獲取焦點時,選中上次失去焦點時的item,而不是就近的item
在電視上開發Android應用時,經常要做有二級選單的應用,例如: 但當我們按左鍵的時候,左邊listview的最近的item會被選中,即如下效果: 但是在電視上開發應用的時候,我們希望是上一次被選中的item重新被選中,即希望是“日期和時間”被重新選中。 為了實現這個
ReactNative ListView改變資料來源,列表不重新整理
ListView開始時的資料來源: dataArr = [ 'ROW0', 'ROW1', 'ROW2' ] 然後我改變資料來源,重新整理沒反應。當然如何你刪除或者增加一組資料是可以的。 data
android隱藏listview中的某幾項item
1.為item加了一層父佈局, 設定view.setVisibility(View.GONE); 但還是會留一個大概1dp高度佔著位置,當連續多個項隱藏時會出現一大片空白 2.設定高度為0 不起作用 params = new RelativeLayout.LayoutPar
實現點選ListView某一item項的選中效果
1 設定ListView的監聽,在監聽中記錄點選的位置,並重新整理介面卡,adapter.notifyDataSetChanged(),會呼叫介面卡的getView()方法。 private int currentPosition; listView.setOnItemCl
讓listview的某一行item不能點選
為了能控制listview的某一行不能有點選事件,在adapter裡重新下面這個方法就可以了。 @Override public boolean isEnabled(int position) { if(positi
Android中點選listview中的某一項時,字型變色
不廢話! 1、在listview的adapter 中新增一個方法 public void selectedItemPosition(int position) { this.selectedPositon = position; } 2、在getView()方