展会信息港展会大全

Android开发(11)-利用listview控件显示person表中的所有数据(并实现点击触发拨号程序)
来源:互联网   发布日期:2015-11-26 13:57:56   浏览:2660次  

导读:核心代码如下: MainActivity.java [java] package com.example.lession05_dbs; import java.util.List; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; impor...

核心代码如下:

MainActivity.java

[java]

package com.example.lession05_dbs;

import java.util.List;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

import com.example.lession05_dbs.dao.PersonDao;

import com.example.lession05_dbs.dao.PersonDaoImpl;

import com.example.lession05_dbs.domain.Person;

public class MainActivity extends Activity {

//listView控件

public ListView listView;

//显示所有的用户信息

public List<Person> persons;

//数据库操作的对象

public PersonDao personDao ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//实例化数据库操作对象

personDao = new PersonDaoImpl(MainActivity.this);

//执行查询数据

persons = personDao.findAll();

//根据id获取控件对象

listView = (ListView) findViewById(R.id.lv_persons);

//设置显示的数据 Adpater

listView.setAdapter(new PersonListAdapter());

//listView注册事件

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

/**

* parent :listView

* view 每个条目控件

* position:条目所在的位置

* id:行号 0

*/

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

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);*/

//parent listView

Person p =(Person) parent.getItemAtPosition(position); //返回值 实际就是getItem返回的值

/* //意图

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();

}

});

}

@Override

public 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{

//告诉你有多少个条目

@Override

public int getCount() {

// TODO Auto-generated method stub

return persons.size();

}

//返回这个为控件对应的数据

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return persons.get(position);

}

//返回条目所在的位置

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

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

//创建一个显示的控件每个条目对应的控件

TextView tv = new TextView(MainActivity.this);

tv.setText(persons.get(position).getName()+"-"+persons.get(position).getPhone());

return tv;

}

}

}

package com.example.lession05_dbs;

import java.util.List;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

import com.example.lession05_dbs.dao.PersonDao;

import com.example.lession05_dbs.dao.PersonDaoImpl;

import com.example.lession05_dbs.domain.Person;

public class MainActivity extends Activity {

//listView控件

public ListView listView;

//显示所有的用户信息

public List<Person> persons;

//数据库操作的对象

public PersonDao personDao ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//实例化数据库操作对象

personDao = new PersonDaoImpl(MainActivity.this);

//执行查询数据

persons = personDao.findAll();

//根据id获取控件对象

listView = (ListView) findViewById(R.id.lv_persons);

//设置显示的数据 Adpater

listView.setAdapter(new PersonListAdapter());

//listView注册事件

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

/**

* parent :listView

* view 每个条目控件

* position:条目所在的位置

* id:行号 0

*/

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

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);*/

//parent listView

Person p =(Person) parent.getItemAtPosition(position); //返回值 实际就是getItem返回的值

/* //意图

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();

}

});

}

@Override

public 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{

//告诉你有多少个条目

@Override

public int getCount() {

// TODO Auto-generated method stub

return persons.size();

}

//返回这个为控件对应的数据

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return persons.get(position);

}

//返回条目所在的位置

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

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

//创建一个显示的控件每个条目对应的控件

TextView tv = new TextView(MainActivity.this);

tv.setText(persons.get(position).getName()+"-"+persons.get(position).getPhone());

return tv;

}

}

}

注意在清单文件中添加 拨号权限:

<uses-permission android:name="android.permission.CALL_PHONE"/>

其他实体类,接口 和实现类,参见上篇博文

赞助本站

人工智能实验室

相关热词: android开发 教程

相关内容
AiLab云推荐
展开

热门栏目HotCates

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