Adapter的用法

Adapter的用法:

public class ListAdapter extends BaseAdapter {
private Context mContext;

private ArrayList<String> mTitles = new ArrayList<String>();

private ArrayList<String> mDialogue = new ArrayList<String>();

private ArrayList<Boolean> mExpanded = new ArrayList<Boolean>();

private int mCount = 0;

public ListAdapter (Context context,
ArrayList<String> titles,
ArrayList<String> dialogue,
ArrayList<Boolean> expanded,
int count)
{
mTitles = titles;
mContext = context;
mDialogue = dialogue;
mExpanded = expanded;
mCount = count;
}

public int getCount() {
return mCount;
}


public void setCount(int mCount) {
this.mCount = mCount;
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
VerView sv;//子项视图
if (convertView == null) {
sv = new VerView(mContext, (String)mTitles.get(position), mDialogue.get(position), mExpanded.get(position));
} else {
sv = (VerView)convertView;
sv.setTitle(mTitles.get(position));
sv.setDialogue(mDialogue.get(position));
sv.setExpanded(mExpanded.get(position));
}

return sv;
}

public void toggle(int position) {
mExpanded.set(position, !mExpanded.get(position));
for(int i = 0; i < mExpanded.size(); i++){
if (i != position){
mExpanded.set(i, false);
}
}

notifyDataSetChanged();
}

public ArrayList<String> getTitles() {
return mTitles;
}

public void setTitles(ArrayList<String> mTitles) {
this.mTitles = mTitles;
}

public ArrayList<String> getDialogue() {
return mDialogue;
}

public void setDialogue(ArrayList<String> mDialogue) {
this.mDialogue = mDialogue;
notifyDataSetChanged();
}

public ArrayList<Boolean> getExpanded() {
return mExpanded;
}

public void setExpanded(ArrayList<Boolean> mExpanded) {
this.mExpanded = mExpanded;
}
}



public class VerView extends LinearLayout {
private TextView mTitle;
private TextView mDialogue;
private ImageView mImageView;

public VerView(Context context, String title, String dialogue, boolean expanded) {
super(context);
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = (LinearLayout) inflater.inflate(
R.layout.list_item_view, null).findViewById(R.id.verListView);
addView(layout);

RelativeLayout rl = (RelativeLayout) layout.getChildAt(0);
mTitle = (TextView)rl.getChildAt(0);
mTitle.setText(title);
mImageView = (ImageView)rl.getChildAt(1);
mImageView.setImageResource(R.drawable.more_normal);

mDialogue = (TextView) layout.getChildAt(1);
mDialogue.setText(dialogue);

mDialogue.setVisibility(expanded ? VISIBLE : GONE);
}

/**
* 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);
}

/**
* Convenience method to expand or hide the dialogue
*/
public void setExpanded(boolean expanded) {
mDialogue.setVisibility(expanded ? VISIBLE : GONE);
if (expanded){
mImageView.setImageResource(R.drawable.more_normal_right);
this.setBackgroundColor(Color.WHITE);
}
else{
mImageView.setImageResource(R.drawable.more_normal);
this.setBackgroundColor(Color.TRANSPARENT);
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值