欢迎使用CSDN-markdown编辑器
来源:互联网 发布:艾力欧与知世怀孕虐文 编辑:程序博客网 时间:2024/04/29 05:21
1。 Android控件之 listview
listview 即下拉列表
初级应用:
a. 主界面定义一个listview;并且绑定好控件;
b. listview 是通过适配器进行数据的填充的 ;所以new baseadpater
适配器:
1.重载四个函数:
2.第四函数中:
a.加载小布局
convertView=getLayoutInflater().inflate(R.layout.newlistview, null);
b.加载小布局中控件id
TextView tv=(TextView) convertView.findViewById(R.id.textView1);
convertView:必须记得用这个调用;
c。填充数据:
tv.setText(str[position]);
return convertView ;
c.listview 加载适配器
源码:
package com.example.testlistview;
import java.util.ArrayList;
import java.util.List;
import com.example.testlistview.R.drawable;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
myAdapter ma=new myAdapter();
ListView listview=null;
TextView tv=null;
int drawa[]={R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.f,R.drawable.g};String str[]={"a","b","c","d","d","d","d","d","d","d","d","d","d","d","d","d","d"};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
// 注册绑定控件
listview=(ListView) findViewById(R.id.listView1);
tv=(TextView) findViewById(R.id.tv);
// 声明一个适配器
// ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line,str);
//设置一个适配器
listview.setAdapter(ma); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO 自动生成的方法存根 String mstr=str[position]; Toast.makeText(MainActivity.this, mstr,1).show(); } });}
class myAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO 自动生成的方法存根
return drawa.length;
}
@Override
public Object getItem(int position) {
// TODO 自动生成的方法存根
return drawa[position];
}
@Override
public long getItemId(int position) {
// TODO 自动生成的方法存根
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO 自动生成的方法存根
// 绑定布局文件
convertView=getLayoutInflater().inflate(R.layout.newlistview, null);
TextView tv=(TextView) convertView.findViewById(R.id.textView1); ImageView imageview=(ImageView) convertView.findViewById(R.id.imageView1); imageview.setImageResource(drawa[position]); tv.setText(str[position]); return convertView ;
}
}
}
高级应用:
科普:
1.建包:acitivity的包(用来放界面的);entity(实体类);adapter(适配器的类)
;view(自定义控件);untils(工具类);
注意事项:
1.适配器将会独立的一个类存在,绑定子布局的方法不能直接调用!!!
2.适配器填充实体类的数据!!!!
3.构造函数,通过设计构造函数,来设计函数的功能。!!!
源码:
package com.example.testAPPproject.adapter;
public class adapter extends BaseAdapter {
LayoutInflater inflaterContext context;ArrayList <UserInfo> list;//有参的构造函数: // 无参的构造函数:方便进行调用;public adapter(Context context, ArrayList<UserInfo> list) { super(); this.inflater = LayoutInflater.from(context);
//不是在activity,不能之间调用getLayoutInflater()
//通过定义LayoutInflater.from(contenxt)
this.list = list;}@Overridepublic int getCount() { // TODO 自动生成的方法存根 return list.size();}@Overridepublic Object getItem(int position) { // TODO 自动生成的方法存根 return list.get(position);}@Overridepublic long getItemId(int position) { // TODO 自动生成的方法存根 return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) { // TODO 自动生成的方法存根 convertView=inflater.inflate(R.layout.list_item, null); TextView tv1=(TextView) convertView.findViewById(R.id.tv_listitem1); TextView tv2=(TextView) convertView.findViewById(R.id.tv_listitem2); tv1.setText(list.get(position).getName());//list集合填充数据。 tv2.setText(list.get(position).getTel()); return convertView;}
}
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 2056--求两矩形的交叉面积
- 2016年 疯一样的测试的解题报告
- commons-fileupload 图片上传示例
- 格兰特·凯特林:西方家族财富管理注重早期规划
- OC中的字符串
- 欢迎使用CSDN-markdown编辑器
- 文章标题
- Apache Commons fileUpload实现文件上传
- 文章标题
- 【Leetcode】之Binary Tree Level Order Traversal
- C-style string一些笔记
- 简单版Java访问MySQL数据库
- leetcode Partition List
- 留念——网络课程设计