編輯:關於Android編程
通常我們是用findViewById()方法來取得我們要使用的View控件,不過除了這一種方法之處 ,我們還可以用View中的setTag(Onbect)給View添加一個格外的數據,再用getTag()獲取到對應的View。setTag()和getTag()方法常用在處理多個相同的View時,比如我們有要對幾個Button添加點擊事件,我們除了可以用view.getId()來區分Button,也可以給Button設置Tag來進行區分。如:
public class TagTestActivity extends Activity implements OnClickListener {
private Button tagBtn2,tagBtn3,tagBtn4;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
dealBtnsListeners();
}
private void initViews() {
tagBtn2=(Button) findViewById(R.id.tag_btn_2);
tagBtn3=(Button) findViewById(R.id.tag_btn_3);
tagBtn4=(Button) findViewById(R.id.tag_btn_4);
}
private void dealBtnsListeners() {
tagBtn2.setOnClickListener(this);
tagBtn3.setOnClickListener(this);
tagBtn4.setOnClickListener(this);
tagBtn2.setTag(2);
tagBtn3.setTag(3);
tagBtn4.setTag(4);
}
@Override
public void onClick(View v) {
//一般我們根據控件的id來判斷是哪個Button被點擊,這裡我們用getTag()來判斷
int btnId=(int) v.getTag();
switch (btnId) {
case 2:
Toast.makeText(this, "點擊Tag為2的Button", 3000).show();
break;
case 3:
Toast.makeText(this, "點擊Tag為3的Button", 3000).show();
break;
case 4:
Toast.makeText(this, "點擊Tag為4的Button", 3000).show();
break;
default:
break;
}
}
}
但是Tag最常用的地方並不在上面所講的。用過ListView的伙伴們對Tag肯定不陌生。為了提高程序性能,我們在給ListView寫適配器Adapter的時候,我們就要用到Tag,下面的代碼大家肯定有過啦:
static class ViewHolder {
private TextView tagTv01;
private TextView tagTv02;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = mContext.getLayoutInflater();
convertView = inflater.inflate(R.layout.item_tag, null);
ViewHolder vh = new ViewHolder();
vh.tagTv01 = (TextView)convertView.findViewById(R.id.tagTv01);
vh.tagTv02 = (TextView)convertView.findViewById(R.id.tagTv01);
convertView.setTag(vh);
} else{
vh=(ViewHolder) convertView.getTag();
}
//添加數據........
}
除了以上的兩種 情況,我們通常不建議用setTag()和getTag(),主要是考慮到代碼的可讀性,另外就是setTag(Objcet)中傳的是Object對象,存在對象轉化 問題。
要逆向分析並修改一個Android應用,首先是對APK進行解包和打包,這一部分網上資料鋪天蓋地,不再贅述了。值得一提的一點就是,如果apktool無法解包或打包的話,可以
最近一段時間在寫支持BLE藍牙的Android應用。是時候總結一下了。1、什麼是BLE。(總得先知道BLE是什麼吧~~~)Bluetooth Low Energy(低功耗
最近也是剛好項目用到,於是就動手寫了一個Android 圖片選擇器的庫。支持圖庫多選/單選/圖片裁剪/拍照/自定義圖片加載庫,極大程度的簡化使用。截圖優點1、通過實現Im
一.前言之前已經將銀聯支付功能進行了集成,暫時將退款功能擱下了,今天抽了一小段光陰把這個洞給補上了。其實有了上一次集成支付功能的經驗,對退貨退款的集成就很容易實現了。本文