您的位置:首页 > 其它

ListView结合BaseAdapter实例

2014-10-28 19:06 232 查看
今天学习android组件:ListView 顺带着使用了BaseAdapter适配器虽然还有些不懂,总不能浪费一天的时间,记录下来吧!

两个xml文件:

listview.xml

<ListView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/listView"/>

item.xml

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/itemImage"

/>

<TextView

android:id="@+id/itemTitle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@+id/itemImage"

android:text="TextTitle" />

<TextView

android:id="@+id/itemText"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/itemTitle"

android:layout_toRightOf="@+id/itemImage"

android:text="ItemText" />

java代码:

/**

* ListView结合BaseAdapter实例

* */

public void listViewTest(){

setContentView(R.layout.listview);

String titles[]={"标题一","标题二","标题三","标题四"};

String texts[]={"文本内容1","文本内容2","文本内容3","文本内容4"};

int []imgId={R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};

ListView listView=(ListView) findViewById(R.id.listView);

setTitle("BaseAdapter for ListView");

listView.setAdapter(new MyAdapter(titles, texts, imgId));

}

/**

*MyAdapter 继承BaseAdapter适配器 */

class MyAdapter extends BaseAdapter{

View itemViews[];



public MyAdapter(String[] itemTitles, String[] itemTexts, int[] itemImageRes) {

itemViews=new View[itemTitles.length];//定义此数组的长度

for(int i=0;i<itemViews.length;i++){

//存储每一次得到的值

itemViews[i]=makeItemView(itemTitles[i], itemTexts[i], itemImageRes[i]);

}

}

/**

* 定义一个赋值方法

* 在构造函数中调用*/

private View makeItemView(String strTitle, String strText, int resId){

//此处赋值

LayoutInflater inflater=(LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

//使用view的对象itemView与R.layout.item关联

//获取组件赋值

TextView title = (TextView) itemView.findViewById(R.id.itemTitle);

title.setText(strTitle);

TextView text = (TextView) itemView.findViewById(R.id.itemText);

text.setText(strText);

ImageView image=(ImageView) itemView.findViewById(R.id.itemImage);

image.setImageResource(resId);

return itemView;

@Override

public int getCount() {

// TODO Auto-generated method stub

return itemViews.length;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return itemViews[position];

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

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

if(convertView==null)

return itemViews[position];

return convertView;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: