android自定义列表显示,Android列表实现(3)_自定义列表适配器思路及实现代码

下面的例子为使用自定义的列表适配器来显示列表。

View Code

import android.os.Bundle;

import android.app.ListActivity;

import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.LinearLayout;

import android.widget.TextView;

public class MainActivity extends ListActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setListAdapter(new SpeechListAdapter(this));

}

/**

* A sample ListAdapter that presents content from arrays of speeches and

* text.

*

*/

private class SpeechListAdapter extends BaseAdapter {

public SpeechListAdapter(Context context) {

mContext = context;

}

/**

* The number of items in the list is determined by the number of speeches

* in our array.

*

* @see android.widget.ListAdapter#getCount()

*/

public int getCount() {

return mTitles.length;

}

/**

* Since the data comes from an array, just returning the index is

* sufficent to get at the data. If we were using a more complex data

* structure, we would return whatever object represents one row in the

* list.

*

* @see android.widget.ListAdapter#getItem(int)

*/

public Object getItem(int position) {

return position;

}

/**

* Use the array index as a unique id.

*

* @see android.widget.ListAdapter#getItemId(int)

*/

public long getItemId(int position) {

return position;

}

/**

* Make a SpeechView to hold each row.

*

* @see android.widget.ListAdapter#getView(int, android.view.View,

* android.view.ViewGroup)

*/

public View getView(int position, View convertView, ViewGroup parent) {

SpeechView sv;

if (convertView == null) {

sv = new SpeechView(mContext, mTitles[position],

mDialogue[position]);

} else {

sv = (SpeechView) convertView;

sv.setTitle(mTitles[position]);

sv.setDialogue(mDialogue[position]);

}

return sv;

}

/**

* Remember our context so we can use it when constructing views.

*/

private Context mContext;

/**

* Our data, part 1.

*/

private String[] mTitles =

{

"Henry IV (1)",

"Henry V",

"Henry VIII",

"Richard II",

"Richard III",

"Merchant of Venice",

"Othello",

"King Lear"

};

/**

* Our data, part 2.

*/

private String[] mDialogue =

{

"So shaken as we are, so wan with care," +

"Find we a time for frighted peace to pant," +

"And breathe short-winded accents of new broils" +

"To be commenced in strands afar remote." +

"No more the thirsty entrance of this soil" +

"Shall daub her lips with her own children's blood;" +

"Nor more shall trenching war channel her fields," +

"Nor bruise her flowerets with the armed hoofs" +

"Of hostile paces: those opposed eyes," +

"Which, like the meteors of a troubled heaven," +

"All of one nature, of one substance bred," +

"Did lately meet in the intestine shock" +

"And furious close of civil butchery" +

"Shall now, in mutual well-beseeming ranks," +

"March all one way and be no more opposed" +

"Against acquaintance, kindred and allies:" +

"The edge of war, like an ill-sheathed knife," +

"No more shall cut his master. Therefore, friends," +

"As far as to the sepulchre of Christ," +

"Whose soldier now, under whose blessed cross" +

"We are impressed and engaged to fight," +

"Forthwith a power of English shall we levy;" +

"Whose arms were moulded in their mothers' womb" +

"To chase these pagans in those holy fields" +

"Over whose acres walk'd those blessed feet" +

"Which fourteen hundred years ago were nail'd" +

"For our advantage on the bitter cross." +

"But this our purpose now is twelve month old," +

"And bootless 'tis to tell you we will go:" +

"Therefore we meet not now. Then let me hear" +

"Of you, my gentle cousin Westmoreland," +

"What yesternight our council did decree" +

"In forwarding this dear expedience.",

"Hear him but reason in divinity," +

"And all-admiring with an inward wish" +

"You would desire the king were made a prelate:" +

"Hear him debate of commonwealth affairs," +

"You would say it hath been all in all his study:" +

"List his discourse of war, and you shall hear" +

"A fearful battle render'd you in music:" +

"Turn him to any cause of policy," +

"The Gordian knot of it he will unloose," +

"Familiar as his garter: that, when he speaks," +

"The air, a charter'd libertine, is still," +

"And the mute wonder lurketh in men's ears," +

"To steal his sweet and honey'd sentences;" +

"So that the art and practic part of life" +

"Must be the mistress to this theoric:" +

"Which is a wonder how his grace should glean it," +

"Since his addiction was to courses vain," +

"His companies unletter'd, rude and shallow," +

"His hours fill'd up with riots, banquets, sports," +

"And never noted in him any study," +

"Any retirement, any sequestration" +

"From open haunts and popularity.",

"I come no more to make you laugh: things now," +

"That bear a weighty and a serious brow," +

"Sad, high, and working, full of state and woe," +

"Such noble scenes as draw the eye to flow," +

"We now present. Those that can pity, here" +

"May, if they think it well, let fall a tear;" +

"The subject will deserve it. Such as give" +

"Their money out of hope they may believe," +

"May here find truth too. Those that come to see" +

"Only a show or two, and so agree" +

"The play may pass, if they be still and willing," +

"I'll undertake may see away their shilling" +

"Richly in two short hours. Only they" +

"That come to hear a merry bawdy play," +

"A noise of targets, or to see a fellow" +

"In a long motley coat guarded with yellow," +

"Will be deceived; for, gentle hearers, know," +

"To rank our chosen truth with such a show" +

"As fool and fight is, beside forfeiting" +

"Our own brains, and the opinion that we bring," +

"To make that only true we now intend," +

"Will leave us never an understanding friend." +

"Therefore, for goodness' sake, and as you are known" +

"The first and happiest hearers of the town," +

"Be sad, as we would make ye: think ye see" +

"The very persons of our noble story" +

"As they were living; think you see them great," +

"And follow'd with the general throng and sweat" +

"Of thousand friends; then in a moment, see" +

"How soon this mightiness meets misery:" +

"And, if you can be merry then, I'll say" +

"A man may weep upon his wedding-day.",

"First, heaven be the record to my speech!" +

"In the devotion of a subject's love," +

"Tendering the precious safety of my prince," +

"And free from other misbegotten hate," +

"Come I appellant to this princely presence." +

"Now, Thomas Mowbray, do I turn to thee," +

"And mark my greeting well; for what I speak" +

"My body shall make good upon this earth," +

"Or my divine soul answer it in heaven." +

"Thou art a traitor and a miscreant," +

"Too good to be so and too bad to live," +

"Since the more fair and crystal is the sky," +

"The uglier seem the clouds that in it fly." +

"Once more, the more to aggravate the note," +

"With a foul traitor's name stuff I thy throat;" +

"And wish, so please my sovereign, ere I move," +

"What my tongue speaks my right drawn sword may prove.",

"Now is the winter of our discontent" +

"Made glorious summer by this sun of York;" +

"And all the clouds that lour'd upon our house" +

"In the deep bosom of the ocean buried." +

"Now are our brows bound with victorious wreaths;" +

"Our bruised arms hung up for monuments;" +

"Our stern alarums changed to merry meetings," +

"Our dreadful marches to delightful measures." +

"Grim-visaged war hath smooth'd his wrinkled front;" +

"And now, instead of mounting barded steeds" +

"To fright the souls of fearful adversaries," +

"He capers nimbly in a lady's chamber" +

"To the lascivious pleasing of a lute." +

"But I, that am not shaped for sportive tricks," +

"Nor made to court an amorous looking-glass;" +

"I, that am rudely stamp'd, and want love's majesty" +

"To strut before a wanton ambling nymph;" +

"I, that am curtail'd of this fair proportion," +

"Cheated of feature by dissembling nature," +

"Deformed, unfinish'd, sent before my time" +

"Into this breathing world, scarce half made up," +

"And that so lamely and unfashionable" +

"That dogs bark at me as I halt by them;" +

"Why, I, in this weak piping time of peace," +

"Have no delight to pass away the time," +

"Unless to spy my shadow in the sun" +

"And descant on mine own deformity:" +

"And therefore, since I cannot prove a lover," +

"To entertain these fair well-spoken days," +

"I am determined to prove a villain" +

"And hate the idle pleasures of these days." +

"Plots have I laid, inductions dangerous," +

"By drunken prophecies, libels and dreams," +

"To set my brother Clarence and the king" +

"In deadly hate the one against the other:" +

"And if King Edward be as true and just" +

"As I am subtle, false and treacherous," +

"This day should Clarence closely be mew'd up," +

"About a prophecy, which says that 'G'" +

"Of Edward's heirs the murderer shall be." +

"Dive, thoughts, down to my soul: here" +

"Clarence comes.",

"To bait fish withal: if it will feed nothing else," +

"it will feed my revenge. He hath disgraced me, and" +

"hindered me half a million; laughed at my losses," +

"mocked at my gains, scorned my nation, thwarted my" +

"bargains, cooled my friends, heated mine" +

"enemies; and what's his reason? I am a Jew. Hath" +

"not a Jew eyes? hath not a Jew hands, organs," +

"dimensions, senses, affections, passions? fed with" +

"the same food, hurt with the same weapons, subject" +

"to the same diseases, healed by the same means," +

"warmed and cooled by the same winter and summer, as" +

"a Christian is? If you prick us, do we not bleed?" +

"if you tickle us, do we not laugh? if you poison" +

"us, do we not die? and if you wrong us, shall we not" +

"revenge? If we are like you in the rest, we will" +

"resemble you in that. If a Jew wrong a Christian," +

"what is his humility? Revenge. If a Christian" +

"wrong a Jew, what should his sufferance be by" +

"Christian example? Why, revenge. The villany you" +

"teach me, I will execute, and it shall go hard but I" +

"will better the instruction.",

"Virtue! a fig! 'tis in ourselves that we are thus" +

"or thus. Our bodies are our gardens, to the which" +

"our wills are gardeners: so that if we will plant" +

"nettles, or sow lettuce, set hyssop and weed up" +

"thyme, supply it with one gender of herbs, or" +

"distract it with many, either to have it sterile" +

"with idleness, or manured with industry, why, the" +

"power and corrigible authority of this lies in our" +

"wills. If the balance of our lives had not one" +

"scale of reason to poise another of sensuality, the" +

"blood and baseness of our natures would conduct us" +

"to most preposterous conclusions: but we have" +

"reason to cool our raging motions, our carnal" +

"stings, our unbitted lusts, whereof I take this that" +

"you call love to be a sect or scion.",

"Blow, winds, and crack your cheeks! rage! blow!" +

"You cataracts and hurricanoes, spout" +

"Till you have drench'd our steeples, drown'd the cocks!" +

"You sulphurous and thought-executing fires," +

"Vaunt-couriers to oak-cleaving thunderbolts," +

"Singe my white head! And thou, all-shaking thunder," +

"Smite flat the thick rotundity o' the world!" +

"Crack nature's moulds, an germens spill at once," +

"That make ingrateful man!"

};

}

/**

* We will use a SpeechView to display each speech. It's just a LinearLayout

* with two text fields.

*

*/

private class SpeechView extends LinearLayout {

public SpeechView(Context context, String title, String words) {

super(context);

this.setOrientation(VERTICAL);

// Here we build the child views in code. They could also have

// been specified in an XML file.

mTitle = new TextView(context);

mTitle.setText(title);

addView(mTitle, new LinearLayout.LayoutParams(

LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

mDialogue = new TextView(context);

mDialogue.setText(words);

addView(mDialogue, new LinearLayout.LayoutParams(

LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

}

/**

* Convenience method to set the title of a SpeechView

*/

public void setTitle(String title) {

mTitle.setText(title);

}

/**

* Convenience method to set the dialogue of a SpeechView

*/

public void setDialogue(String words) {

mDialogue.setText(words);

}

private TextView mTitle;

private TextView mDialogue;

}

}

该例子中自定义了适配器 SpeechListAdapter (其继承父类BaseAdapter)以及作为记录模板的 SpeechView(其父类为LinearLayout)。

SpeechListAdapter中的方法getView实现了返回指定位置的记录显示对象的逻辑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值