android view setTag()和findViewWithTag()

我们可能在有得需求情况下要给view设置一个tag,然后根据这个tag获取这个对应的view对象,给一个view设置一个tag为setTag(),根据这个tag获取这个view对象使用findViewWithTag()方法,写了一个简单的demo玩玩,

package com.example.tags;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
	private TextView tv1,tv2,tv3,tv4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv1 = (TextView) findViewById(R.id.tv1);
        tv2 = (TextView) findViewById(R.id.tv2);
        tv3 = (TextView) findViewById(R.id.tv3);
        tv4 = (TextView) findViewById(R.id.tv4);
        
        tv1.setTag("tag1");
        tv2.setTag("tag2");
        tv3.setTag("tag3");
        tv4.setTag("tag4");
        
        tv1.setOnClickListener(this);
        tv2.setOnClickListener(this);
        tv3.setOnClickListener(this);
        tv4.setOnClickListener(this);
    }
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.tv1:
			((TextView)tv1.findViewWithTag("tag1")).setText("变化后的tag1");
			break;
		case R.id.tv2:
			((TextView)tv2.findViewWithTag("tag2")).setText("变化后的tag2");	
			break;
		case R.id.tv3:
			((TextView)tv3.findViewWithTag("tag3")).setText("变化后的tag3");
			break;
		case R.id.tv4:
			((TextView)tv4.findViewWithTag("tag4")).setText("变化后的tag4");
			break;
		}
	}
}

就是一个布局中四个textview而已,没啥讲的!

你可能感兴趣的:(android)