Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 一起學android之自定義控件顯示點贊用戶並通過用戶名稱進入該用戶主頁的功能

一起學android之自定義控件顯示點贊用戶並通過用戶名稱進入該用戶主頁的功能

編輯:關於Android編程

效果圖:

\

以上效果類似於顯示點贊用戶的界面,我們可以通過點擊不同的昵稱進入每個人的個人主頁。

 

關於公共控件,請點擊文章下方的git地址。

 

第一步:

我們為每個點贊的人建一個類用來代表個人的信息:

Person:

 

public class Person {
	public String name;
	public int age;
}

很簡單,就一個名字和年齡

 

第二步:

自定義TextView控件

創建PersonListView並繼承BaseOnTextView這個抽象類:

 

public class PersonListView extends BaseOnTextView {

	public PersonListView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public PersonListView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public PersonListView(Context context) {
		super(context);
	}

	public void setVoteName(ArrayList list, int index) {
		this.getInfo(list);
		setVoteList(list, index);
	}

	/**
	 * 設置點贊姓名
	 */
	@Override
	public String getVoteName(Person data) {
		return data.name;
	}

	/**
	 * 獲取點贊人的信息
	 */
	@Override
	public List getInfo(List list) {
		return list;
	}

}

 

 

第三步:

將自定義的TextView放入xml中。

person_item.xml:

 


第四步:

 

創建我們的Activity。

MainActivity:

 

public class MainActivity extends Activity {

	private ListView lv_lsit;
	private ArrayList personList=new ArrayList();
	private PersonListAdapter mPersonListAdapter=new PersonListAdapter();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}
	
	private void initView(){
		String[] strs = {火影忍者, 卡卡西, 漩渦鳴人, 宇智波鼬 ,宇智波佐助,小櫻,李洛克,大蛇丸,取個名字好難啊,請不要再來傷害我};
		for(int i=0;i

 

最後在TextViewSpan類中的onClick方法中添加事件。

 

 

public class TextViewSpan extends ClickableSpan {
	private String clickString;
	private Context mContext;
	private int selectClick;
	private T votePerson;

	public TextViewSpan(String clickString, Context context, int selectClick) {
		this.clickString = clickString;
		this.mContext = context;
		this.selectClick = selectClick;
	}

	/**
	 * 設置點贊人的信息
	 * 
	 * @param t
	 */
	public void setInfo(T t) {
		votePerson = t;
	}

	@Override
	public void updateDrawState(TextPaint ds) {
		ds.setColor(mContext.getResources().getColor(R.color.main_link));
		ds.setUnderlineText(false); 
	}

	@Override
	public void onClick(View widget) {
		switch (selectClick) {
		case 0:// 打開個人主界面
			Person person = (Person) votePerson;
			Toast.makeText(mContext, person.name, Toast.LENGTH_SHORT).show();
			break;
		case 1:
			break;
		default:
			break;
		}

	}

}


 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved