package com.heima.lv;
public class MainActivity extends Activity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*第一步得到视图*/
lv = (ListView) findViewById(R.id.lv);
/*第二步adapter 得到控制器*/
lv.setAdapter(new Myadapter());
}
// ListAdapter提供的 有 现成的 实现 类, 这些 是 与 之前 所学习的 是一样的
// BaseXXX, SimpleXXX, DefaultXXX
private class Myadapter extends BaseAdapter {
// 通过 adapter告诉 最要在 listView(view) 中显示 多少条 目 的数据
@Override
public int getCount() {
// TODO Auto-generated method stub
return 50;
}
//用来 显示 每个条目时 会被调用到的 方法
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*第三步:设置内容*/
TextView tv = new TextView(MainActivity.this);
tv.setText("我是第 " +position+ "个条目 ");
return tv;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
}
listView的优化
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:layout_centerVertical="true"
android:src="@drawable/nan"
android:id="@+id/iv_sex"
android:layout_height="25dp"
android:layout_width="25dp"/>
<TextView
android:layout_marginLeft="15dp"
android:text="姓名"
android:layout_toRightOf="@id/iv_sex"
android:layout_centerVertical="true"
android:id="@+id/tv_name"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<ImageView
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:src="@drawable/delete"
android:id="@+id/iv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
package com.heima.studentsystem;
public class MainActivity extends Activity {
private EditText ed_name;
private RadioGroup rgb;
private ListView lv;
StudentDao sdao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed_name = (EditText) findViewById(R.id.ed_name);
rgb = (RadioGroup) findViewById(R.id.rgb);
lv = (ListView) findViewById(R.id.lv);
sdao = new StudentDao(this);
}
//保存学生的信息
public void save(View v) {
String name = ed_name.getText().toString().trim();
if(TextUtils.isEmpty(name)) {
Toast.makeText(this, "对不起, 学生姓名和 学号不能为空", 0).show();
return;
}
String sex ="male";
//拿到 被 选择的 radio 单选项
int id = rgb.getCheckedRadioButtonId();
if(id==R.id.male){
sex ="male";
}else {
sex="female";
}
//调用 dao 存学生的信息
sdao.insert(name, sex);
Toast.makeText(this, "保存成功", 0).show();
}
List<Student> list;
Myadapter myadapter;
public void display(View v) {
refreshData();
}
private void refreshData() {
list = sdao.getAll();
if(myadapter == null) {
myadapter = new Myadapter();
lv.setAdapter(myadapter);
}else {
//通知 数据 集合 发生变化了
// 在 只 刷新 部分 界面的数据
myadapter.notifyDataSetChanged();
}
}
public class Myadapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
//listView的优化:参数convertView使用优化的
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Student student = list.get(position);
System.out.println("position : " + position + " convertView : " + convertView);
View v = null;
if(convertView == null) {
//得到自定义的布局文件
v = View.inflate(MainActivity.this, R.layout.item, null);
}else {
v = convertView;
}
TextView tv = (TextView) v.findViewById(R.id.tv_name);
tv.setText(student.getName());
ImageView iv_sex = (ImageView) v.findViewById(R.id.iv_sex);
if("male".equals(student.getSex())) {
iv_sex.setImageResource(R.drawable.nan);
}else {
iv_sex.setImageResource(R.drawable.nv);
}
v.findViewById(R.id.iv_delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println(" delete 被点击了 .... 哦 ");
sdao.delete(student.getName());
refreshData();
Toast.makeText(MainActivity.this, "删除成功", 0).show();
}
});
return v;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
}