展会信息港展会大全

android基础入门ListView视图(8)
来源:互联网   发布日期:2015-11-26 13:09:57   浏览:1310次  

导读:一.ListView视图: ListView 用来显示一个列表控件。 public class MainActivity extends ListActivity { String[] str = {中国,法国,英国,瑞士,奥地利,美国,印度,梵蒂冈}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(...

一.ListView视图:

ListView 用来显示一个列表控件。

public class MainActivity extends ListActivity {

String[] str = {"中国","法国","英国","瑞士","奥地利","美国","印度","梵蒂冈"};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, str));

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

Toast.makeText(this,"你点击了"+str[position],Toast.LENGTH_SHORT).show();

}

}

这是实现的最基础的ListView列表:

MainActivity扩展了ListView类,而ListView类扩展了Activity类并且通过绑定到一个数据源来显示一个项列表。还要注意不用再布局文件中添加ListView控件,因为在ListView类中已经包含着一个ListView,在onCreate()方法中,使用setListAdapter()方法来用一个ListView以编程方式填充活动的整个屏幕。ArrayAdapter对象管理将由ListView显示的字符串数组。当点击了ListView中的一个列表选项时,将触发onListItemClick()方法,显示一条吐司信息。

运行图:

我们可以将要显示的字符串存储在strings.xml:

ListViewTestSettingsHello world!中国法国英国瑞士奥地利美国印度梵蒂冈马尔代夫

MainActivity.java:

public class MainActivity extends ListActivity {

String[] str ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

str = getResources().getStringArray(R.array.str);

setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, str));

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

Toast.makeText(this,"你点击了"+str[position],Toast.LENGTH_SHORT).show();

}

}

通过getResources()方法以编程方式来检索与应用程序捆绑的资源。

自定义ListView+自定义适配器(BaseAdapter):

ListView布局:

MainActivity.java:

public class MainActivity extends ListActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//设置一个Adapter,使用自定义的Adapter

setListAdapter(new TextImageAdapter(this));

}

private class TextImageAdapter extends BaseAdapter{

private Context mContext;

public TextImageAdapter(Context context) {

this.mContext=context;

}

/**

* 元素的个数

*/

public int getCount() {

return left.length;

}

public Object getItem(int position) {

return null;

}

public long getItemId(int position) {

return 0;

}

//用以生成在ListView中展示的一个个元素View

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

//优化ListView

if(convertView==null){

convertView=LayoutInflater.from(mContext).inflate(R.layout.activity_main, null);

ItemViewCache viewCache=new ItemViewCache();

viewCache.mTextLeft=(TextView)convertView.findViewById(R.id.textLeft);

viewCache.mTextRight=(TextView)convertView.findViewById(R.id.textRight);

convertView.setTag(viewCache);

}

ItemViewCache cache=(ItemViewCache)convertView.getTag();

//设置文本和图片,然后返回这个View,用于ListView的Item的展示

cache.mTextLeft.setText(left[position]);

cache.mTextRight.setText(Right[position]);

return convertView;

}

}

private static class ItemViewCache{

public TextView mTextLeft;

public TextView mTextRight;

}

//屏幕左边TextView

privateString[] left=new String[]{"国家","省","地区"};

// 屏幕右边TextView

private String[] Right = new String[]{"中国","山东","滨州"};

}

这里我们自己定义了适配器,对于适配器后面我们会详细讲解。想添加列表的点击事件:

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

Toast.makeText(this, "你点击了"+left[position]+Right[position], Toast.LENGTH_SHORT).show();

}

运行效果:

赞助本站

人工智能实验室

相关热词: android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港