Android中自制通讯录中显示出数据库中的姓名和电话号码进行打电话
16lz
2021-01-26
其中建库和增删改查操作请参考前几篇文章的具体介绍:
/** * * @author chrp * *显示出数据库中的用户名和电脑号码 */public class MainActivity_01 extends Activity {// listView控件public ListView listView;// 显示所有的用户信息public List persons;// 数据库操作的对象public PersonDao personDao;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 实例化数据库操作对象personDao = new PersonDaoImpl(MainActivity_01.this);// 执行查询数据persons = personDao.findAll();// 根据id获取控件对象listView = (ListView) findViewById(R.id.listView);// 设置显示的数据 AdpaterlistView.setAdapter(new PersonListAdapter());// listViwe注册事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {/** * parent :listView view 每个条目控件 position:条目所在的位置 id:行号 0 */@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {@SuppressWarnings("unused")TextView tv = (TextView) view;// Toast.makeText(getApplicationContext(), tv.getText().toString(),Toast.LENGTH_LONG).show(); /* //获取控件的文本 String text = tv.getText().toString(); //拆分 String arr[] = text.split("-"); //得到电话 String phone = arr[1]; //意图 Intent intent = new Intent(); //设置动作 intent.setAction(Intent.ACTION_CALL); //设置数据 intent.setData(Uri.parse("tel:"+phone)); //执行意图 startActivity(intent);*/// 返回值 实际就是getItem返回的值Person p = (Person) parent.getItemAtPosition(position); //意图 Intent intent = new Intent(); //设置动作 intent.setAction(Intent.ACTION_CALL); //设置数据 intent.setData(Uri.parse("tel:"+p.getPhone())); //执行意图 startActivity(intent); // Toast.makeText(getApplicationContext(), p.getName(), Toast.LENGTH_LONG).show();int lid = (int) parent.getItemIdAtPosition(position);Toast.makeText(getApplicationContext(), lid + "",Toast.LENGTH_LONG).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}class PersonListAdapter extends BaseAdapter {// 告诉你有多少个条目@Overridepublic int getCount() {return persons.size();}//返回这个为控件对应的数据@Overridepublic Object getItem(int position) {return persons.get(position);}//返回条目所在的位置@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//创建一个显示的控件,每个条目对应的控件TextView tv = new TextView(MainActivity_01.this);tv.setText(persons.get(position).getName()+"--"+persons.get(position).getPhone());return tv;}}}
要记得在 AndroidManifest.xml 添加 打电话的权限:
更多相关文章
- Android(安卓)开源控件系列_2
- android 图片放大缩小 多点缩放
- Android(安卓)Chronometer(计时器)
- android中gridview的居中问题
- Android(安卓)TextView字体设置
- Android设置全屏隐藏状态栏的方法
- android之帧动画实现
- Android动态布局,并动态为TextView控件设置drawableLeft、drawabl
- Android(安卓)RecyclerView 设置分割线(item头部也绘制)