ArrayAdapter和自己创建BaseAdapter用于ListView的示例
来源:互联网 发布:狂湿淘宝店 编辑:程序博客网 时间:2024/05/18 01:50
ArrayAdapter非常简单,但是用于ListView的时候限制太多,一般只用于显示单行的文本。
最常见的是ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mContent);
mContent是一个String[],把字符串放进default layout android.R.layout.simple_list_item_1中。
另外一种方式是把字符串设置到layout R.layout.activity_my_list_activity2 的 R.id.text这个text view中,这样你可以自己定义一下你的TextView
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_my_list_activity2,R.id.text, mContent);
下面是自己实现BaseAdapter:
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MyListActivity3 extends ListActivity {
MyArrayAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_my_list_activity3);
mAdapter = new MyArrayAdapter(this);
getListView().setAdapter(mAdapter);
getListView().setOnItemClickListener(new OnItemClickListener() {
/*如果自定义的ListView中某个item中含有button,那么这个onItemClick就不会被叫到,本例的item layout是TextView+ImageView,所以会叫到这个方法*/
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(MyListActivity3.this, "Hi "+(String)mAdapter.getItem(arg2), Toast.LENGTH_LONG).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_list_activity3, menu);
return true;
}
public class MyArrayAdapter extends BaseAdapter {
String[] mName = {"YoonA", "Olivia"};
Context mCtx = null;
public MyArrayAdapter(Context c) {
super();
mCtx = c;
}
/*要实现下面这几个方法*/
@Override
public int getCount() {
// TODO Auto-generated method stub
return mName.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mName[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
/*主要工作是实现getView方法*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView == null) {
convertView = (RelativeLayout)LayoutInflater.from(mCtx).inflate(R.layout.activity_my_list_activity3, parent, false) ;
}
TextView tv = (TextView)convertView.findViewById(R.id.text_name); /*ViewGroup的findViewById*/
tv.setText(mName[position]);
ImageView iv = (ImageView)convertView.findViewById(R.id.image);
iv.setImageResource(R.drawable.ic_launcher);
return convertView;
}
}
}
- ArrayAdapter和自己创建BaseAdapter用于ListView的示例
- ArrayAdapter和BaseAdapter的区别
- ArrayAdapter和BaseAdapter的区别
- listView、baseAdapter、arrayAdapter、simpleAdapter
- ArrayAdapter和BaseAdapter的实现和区别
- ArrayAdapter和BaseAdapter的区别是什么
- ArrayAdapter, SimpleAdapter 和BaseAdapter的使用范例
- ArrayAdapter和BaseAdapter的区别是什么
- listview过滤item(基于ArrayAdapter和BaseAdapter)
- ListView使用ArrayAdapter、BaseAdapter实现
- ArrayAdapter、SimpleAdapter和BaseAdapter
- 3.2列表的使用listview与BaseAdapter、simpleAdapter、ArrayAdapter
- ListView 的三种适配器 BaseAdapter ArrayAdapter SimpleAdapter(3)
- ListView 的三种适配器 BaseAdapter ArrayAdapter SimpleAdapter(1)
- ListView 的三种适配器 BaseAdapter ArrayAdapter SimpleAdapter(2)
- android---------ArrayAdapter、SimpleAdapter和BaseAdapter
- android-----ArrayAdapter、SimpleAdapter和BaseAdapter
- SimpleAdapter和ArrayAdapter和BaseAdapter的适用场景
- 大数据 取样
- 2013-11-17 实验之带分数(优化穷举思想)
- 图说Java —— 理解Java机制最受欢迎的8幅图
- linux 编辑器 中文乱码
- hdu2051
- ArrayAdapter和自己创建BaseAdapter用于ListView的示例
- POJ 2363 Blocks (ZOJ 1910) 数学
- 小收获
- java获取中国城市代码 中国城市ID
- AVL树
- ubuntu 13安装
- 设计一个学生类,包含学号、姓名、课程、成绩,计算学生们的各科平均成绩,学生人数依输入而定
- 使用符号表调试release程序
- 修饰符的访问范围记忆方法