專案中使用到了仿iphone那樣的城市分組列表,網上找到了乙個demo但是問題來了,他的資料是直接放在裡面的,而我的需求是動態獲取資料,再更新ui
import android.content.context;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.graphics.typeface;
import android.util.attributeset;
import android.view.motionevent;
import android.view.view;
/*** 右側字母表,快速定位
* * @author lmj
* */
public class rightcharacterlistview extends view
string b = ;
// string b =new cityselectactivity().rightchar;
ontouchingletterchangedlistener ontouchingletterchangedlistener;
int choose = -1;
paint paint = new paint();
boolean showbkg = false;
public rightcharacterlistview(context context, attributeset attrs,
int defstyle)
public rightcharacterlistview(context context, attributeset attrs)
public rightcharacterlistview(context context,string b)
@override
protected void ondraw(canvas canvas)
if (c!=null&&c.length>0)
int height = this.getheight();
int width = this.getwidth();
int singleheight = height / b.length;
for (int i = 0; i < b.length; i++)
float xpos = width / 2 - paint.measuretext(b[i]) / 2;
float ypos = singleheight * i + singleheight;
canvas.drawtext(b[i], xpos, ypos, paint);
paint.reset();
}@override
public boolean dispatchtouchevent(motionevent event)
}break;
case motionevent.action_move:
if (oldchoose != c && listener != null)
}break;
case motionevent.action_up:
showbkg = false;
choose = -1;
invalidate();
break;
}return true;
}@override
public boolean ontouchevent(motionevent event)
public void setontouchingletterchangedlistener(
ontouchingletterchangedlistener ontouchingletterchangedlistener)
public inte***ce ontouchingletterchangedlistener
rightchar=letter.toarray(new string {});
rightcharacterlistview letterlistview = (rightcharacterlistview) findviewbyid(r.id.rightcharacterlistview);
letterlistview.setc(rightchar);
letterlistview.invalidate();
先隨便寫下,專案完成再修改
更新UI介面
在同乙個ui介面中可能包含有 文字 文字框 進度條等多種控制項,如何在保持分布比例的基礎上將各元素排布的僅僅有條,這裡主要使用到grid布局。grid布局是wpf中一種非常常用的 布局,它可以將整個介面劃分為規則的幾行幾列,也可以單獨將其中一行劃分為需要的列數。介面中使用的控制項可以單獨位於乙個網格...
React 入門 2 狀態 UI更新 類元件
ui無非就是應用程式的狀態的一種表現形式.我們已經了解reactdom.render 函式可以掛載或區域性更新dom,但是我們需要一種更精妙的方式.每當應用程式狀態有任何更新,我們就重新整理一次根節點,這樣是可以的,畢竟react只會更新變化的節點,但是整個樹節點都進行一次比對是冗餘的.我們來看這種...
子執行緒更新UI
一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...