从SQLite数据库传球意图价值观和检索数据 [英] Passing Intent Values and retrieving data from SQLite database
问题描述
我已经写了类似于Android的通讯录中的应用。我在我的列表中的几个项目,当我点击他们,我从一个数据库,并显示在另一个view.But的信息时,我点击列表视图中的名称之一,我得到一个空的画面(仿真器goesblank) 。请帮帮忙,我是新来的Android编程。所有的建议表示欢迎。
感谢您
公共类联系人扩展活动实现OnClickListener {
INT NewContact_Request_ code = 1;
按钮newcontact;
ListView控件列表视图;
公共静态最后弦乐LOG_TAG =联系人;
INT薄荷= 0;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.contactview);
//设置内容contactview.xml
// newcontact =新联系人按钮
//列表视图= MYLIST列表视图
newcontact =(按钮)findViewById(R.id.baddcontact);
列表视图=(ListView控件)findViewById(R.id.mylist);
//创建一个新的数据库
DBContact信息=新DBContact(本);
//打开,从数据库中获取信息,并将其关闭
info.open();
的String []数据= info.queryAll();
info.close();
//列表视图= getListView();
listview.setTextFilterEnabled(真正的);
//显示的名字
ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(Contacts.this,
android.R.layout.simple_list_item_1,数据);
listview.setAdapter(适配器);
listview.setOnItemClickListener(新OnItemClickListener(){
公共无效onItemClick(适配器视图适配器视图,视图中查看,
INT位置,长的id){
字符串nameclicked = adapterView.getItemAtPosition(位置)
的ToString();
意图viewintent =新的意图(Contacts.this,ViewContact.class);
viewintent.putExtra(name_clicked,nameclicked);
startActivity(viewintent);
}
});
newcontact.setOnClickListener(本);
}
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图newintent =新的意图(Contacts.this,AddNewContact.class);
//启动actiivity的结果 - 获得新的联系人的姓名
startActivityForResult(newintent,0);
}
@覆盖
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
// TODO自动生成方法存根
super.onActivityResult(要求code,因此code,数据);
//通过经由光标的字符串的值和更新列表
}
}
ViewCOntact.class
公共类ViewContact扩展活动实现OnClickListener {
按钮ViewPPhone,ViewHPhone,ViewOPhone,EditContact;
TextView的视图名;
TextView的ViewPersonalPhone;
@覆盖
保护无效的onCreate(包savedInstanceState){
// TODO自动生成方法存根
super.onCreate(savedInstanceState);
的setContentView(R.layout.viewcontact);
捆绑额外= getIntent()getExtras()。
字符串名称= extras.getString(name_clicked);
长L =的Long.parseLong(名称);
DBContact getdetails =新DBContact(本);
getdetails.open();
串returnedname = getdetails.getName(升);
串returnedpphone = getdetails.getPphone(升);
串returnedhphone = getdetails.getHphone(升);
串returnedophone = getdetails.getOphone(升);
getdetails.close();
ViewName.setText(returnedname);
ViewPPhone.setText(returnedpphone);
ViewHPhone.setText(returnedhphone);
ViewOPhone.setText(returnedophone);
EditContact =(按钮)findViewById(R.id.bEditContact);
EditContact.setOnClickListener(本);
ViewPPhone =(按钮)findViewById(R.id.ViewPersonalPhoneNumber);
ViewPPhone.setOnClickListener(本);
ViewHPhone =(按钮)findViewById(R.id.ViewHomePhoneNumber);
ViewHPhone.setOnClickListener(本);
ViewOPhone =(按钮)findViewById(R.id.ViewOfficePhoneNumber);
ViewOPhone.setOnClickListener(本);
}
公共无效的onClick(视图查看){
// TODO自动生成方法存根
开关(view.getId()){
案例R.id.ViewPersonalPhoneNumber:
意图dialpersonalphone =新
意图(android.content.Intent.ACTION_DIAL,
Uri.parse(returnedpphone));
startActivity(dialpersonalphone);
打破;
案例R.id.ViewHomePhoneNumber:
意图dialhome =新
意图(android.content.Intent.ACTION_DIAL,
Uri.parse(returnedhphone));
startActivity(dialhome);
打破;
案例R.id.ViewOfficePhoneNumber:
意图dialoffice =新
意图(android.content.Intent.ACTION_DIAL,
Uri.parse(returnedophone));
startActivity(dialoffice);
打破;
案例R.id.bEditContact:
startActivity(新的意向书(com.example.contactlist.EDITCONTACT));
打破;
}
}
}
logcat的
二月9号至26日:52:11.527:W / dalvikvm(1605):主题ID = 1:螺纹退出与未捕获的异常(组= 0x40a13300)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):致命异常:主要
2月九日至26日:52:11.558:E / AndroidRuntime(1605):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.contactlist / com.example.contactlist.ViewContact}:java.lang.NumberFormatException:无效长:
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread.access $ 600(ActivityThread.java:130)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1195)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.os.Handler.dispatchMessage(Handler.java:99)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.os.Looper.loop(Looper.java:137)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread.main(ActivityThread.java:4745)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在java.lang.reflect.Method.invokeNative(本机方法)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在java.lang.reflect.Method.invoke(Method.java:511)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在dalvik.system.NativeStart.main(本机方法)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):由:java.lang.NumberFormatException:无效的长:
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在java.lang.Long.invalidLong(Long.java:125)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在java.lang.Long.parseLong(Long.java:346)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在java.lang.Long.parseLong(Long.java:319)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在com.example.contactlist.ViewContact.onCreate(ViewContact.java:24)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.Activity.performCreate(Activity.java:5008)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
2月九日至26日:52:11.558:E / AndroidRuntime(1605):11 ...更多
数据库类
公共类DBContact {
公共静态最后弦乐KEY_ROWID =_id;
公共静态最后弦乐KEY_NAME =名称;
公共静态最后弦乐KEY_PERSONALPHONE =Personalnumber;
公共静态最后弦乐KEY_HOMEPHONE =Homenumber;
公共静态最后弦乐KEY_OFFICEPHONE =Officenumber;
私有静态最后弦乐DATABASE_NAME =联系人;
私有静态最后弦乐DATABASE_TABLE =ContactList;
私有静态最终诠释DATABASE_VERSION = 1;
//类DbHelper的实例
私人DbHelper ourHelper;
私人最终语境ourContext;
私人SQLiteDatabase ourDatabase;
公共静态最后的String [] KEYS_ALL = {DBContact.KEY_ROWID,
DBContact.KEY_NAME,DBContact.KEY_PERSONALPHONE,
DBContact.KEY_HOMEPHONE,DBContact.KEY_OFFICEPHONE};
私有静态类DbHelper扩展SQLiteOpenHelper {
私有静态最后弦乐DATABASE_CREATE =创建表ContactList(_id整数主键自动增量,
+Name文本不为空,Personalnumber文字不为空,Homenumber文字不为空,Officenumber文字NOT NULL);;
公共DbHelper(上下文的背景下){
超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
// TODO自动生成构造函数存根
}
@覆盖
公共无效的onCreate(SQLiteDatabase ourDatabase){
// TODO自动生成方法存根
尝试 {
ourDatabase.execSQL(DATABASE_CREATE);
}赶上(的SQLException E){
e.printStackTrace();
}
}
@覆盖
公共无效onUpgrade(SQLiteDatabase ourDatabase,诠释oldVersion,诠释静态网页){
// TODO自动生成方法存根
ourDatabase.execSQL(DROP TABLE IF EXISTS ContactList);
的onCreate(ourDatabase);
}
}
//构造withhin我们班的语境
公共DBContact(上下文C){
ourContext = C;
}
//打开数据库
公共DBContact的open()抛出的SQLException {
//构造DB Helper类需要在上下文
//语境是我们的类中传递的是ourContext为
ourHelper =新DbHelper(ourContext);
//传入数据库名称和版本
// ourDatabase的类型是SQLite数据库中
ourDatabase = ourHelper.getWritableDatabase();
回到这一点;
}
//关闭数据库连接
公共无效的close(){
//参阅DbHelper并关闭SQLite数据库助手
ourHelper.close();
ourHelper = NULL;
ourDatabase = NULL;
}
//删除该行
公共布尔deleteRow(长ROWID){
返回ourDatabase.delete(DATABASE_TABLE,DBContact.KEY_ROWID +=
+ ROWID,NULL)> 0;
}
公众的String [] queryAll(){
的String []列=新的String [] {} KEY_NAME;
光标光标= ourDatabase.query(DATABASE_TABLE,列,NULL,NULL,
NULL,NULL,NULL);
如果(光标!= NULL){
尝试 {
最终诠释nameColumnIndex = cursor.getColumnIndex(KEY_NAME);
名单<字符串>名称=新的ArrayList<字符串>();
cursor.moveToFirst();
而(cursor.moveToNext()){
names.add(cursor.getString(nameColumnIndex));
}
返回names.toArray(新的String [names.size());
} 最后 {
cursor.close();
}
}
返回null;
//返回列;
}
/ *公众光标queryAll(){
的String []列=新的String [] {} KEY_NAME;
返回ourDatabase.query(DATABASE_TABLE,列,NULL,NULL,NULL,NULL,NULL);
如果(数据== NULL){
列[0] =常开触点preSENT;
返回栏目;
}其他{
返回栏目;
}
} * /
众长NEWROW(字符串名称,字符串pphone,字符串hphone,字符串的OPhone){
// TODO自动生成方法存根
ContentValues newvalue中=新ContentValues();
newvalue.put(KEY_NAME,姓名);
newvalue.put(KEY_PERSONALPHONE,pphone);
newvalue.put(KEY_HOMEPHONE,hphone);
newvalue.put(KEY_OFFICEPHONE,OPhone的);
返回ourDatabase.insert(DATABASE_TABLE,空,为newValue);
}
公共字符串的getName(长L){
// TODO自动生成方法存根
的String []列=新的String [] {KEY_ROWID,KEY_NAME,
KEY_PERSONALPHONE,KEY_HOMEPHONE,KEY_OFFICEPHONE};
光标C = ourDatabase.query(DATABASE_TABLE,列,KEY_ROWID +=
+ 1,NULL,NULL,NULL,NULL);
如果(C!= NULL){
c.moveToFirst();
字符串名称= c.getString(1);
返回名称;
}
返回null;
}
公共字符串getPphone(长L){
// TODO自动生成方法存根
的String []列=新的String [] {KEY_ROWID,KEY_NAME,
KEY_PERSONALPHONE,KEY_HOMEPHONE,KEY_OFFICEPHONE};
光标C = ourDatabase.query(DATABASE_TABLE,列,KEY_ROWID +=
+ 1,NULL,NULL,NULL,NULL);
如果(C!= NULL){
c.moveToFirst();
串Pphone = c.getString(2);
返回Pphone;
}
返回null;
}
公共字符串getHphone(长L){
// TODO自动生成方法存根
的String []列=新的String [] {KEY_ROWID,KEY_NAME,
KEY_PERSONALPHONE,KEY_HOMEPHONE,KEY_OFFICEPHONE};
光标C = ourDatabase.query(DATABASE_TABLE,列,KEY_ROWID +=
+ 1,NULL,NULL,NULL,NULL);
如果(C!= NULL){
c.moveToFirst();
串Hphone = c.getString(3);
返回Hphone;
}
返回null;
}
公共字符串getOphone(长L){
// TODO自动生成方法存根
的String []列=新的String [] {KEY_ROWID,KEY_NAME,
KEY_PERSONALPHONE,KEY_HOMEPHONE,KEY_OFFICEPHONE};
光标C = ourDatabase.query(DATABASE_TABLE,列,KEY_ROWID +=
+ 1,NULL,NULL,NULL,NULL);
如果(C!= NULL){
c.moveToFirst();
串的Ophone = c.getString(4);
返回的Ophone;
}
返回null;
}
}
长L =的Long.parseLong(名称);
有问题。
字符串nameclicked = adapterView.getItemAtPosition(位置)
的ToString();
在这里nameclicked是一个字符串
您发送一个字符串值,并试图将它解析为数字格式。 所以,我可以知道你为什么解析nameClicked?
I have written a application similar to Contacts in android. I have a few items in my list , when I click them , I get the information from a data base and display in another view.But when I click on one of the names in list view , I get an empty screen(emulator goesblank) . Please help, i am new to android programming . all suggestions welcome
Thank You
public class Contacts extends Activity implements OnClickListener {
int NewContact_Request_Code = 1;
Button newcontact;
ListView listview;
public static final String LOG_TAG = "Contacts";
int mInt = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contactview);
// Set the content to contactview.xml
// newcontact = NEW CONTACT button
// listview = MyList List View
newcontact = (Button) findViewById(R.id.baddcontact);
listview = (ListView) findViewById(R.id.mylist);
// Make a New Database
DBContact info = new DBContact(this);
// Open , get Information from database and close it
info.open();
String[] data = info.queryAll();
info.close();
// listview = getListView();
listview.setTextFilterEnabled(true);
// Display the names
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Contacts.this,
android.R.layout.simple_list_item_1, data);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView adapterView, View view,
int position, long id) {
String nameclicked = adapterView.getItemAtPosition(position)
.toString();
Intent viewintent = new Intent(Contacts.this, ViewContact.class);
viewintent.putExtra("name_clicked", nameclicked);
startActivity(viewintent);
}
});
newcontact.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
Intent newintent = new Intent(Contacts.this, AddNewContact.class);
// start actiivity for result - to get the name of the new contact
startActivityForResult(newintent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// pass the value of the string via cursor and update the list
}
}
ViewCOntact.class
public class ViewContact extends Activity implements OnClickListener {
Button ViewPPhone, ViewHPhone, ViewOPhone, EditContact;
TextView ViewName;
TextView ViewPersonalPhone;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.viewcontact);
Bundle extras = getIntent().getExtras();
String name = extras.getString("name_clicked");
Long l = Long.parseLong(name);
DBContact getdetails = new DBContact(this);
getdetails.open();
String returnedname = getdetails.getName(l);
String returnedpphone = getdetails.getPphone(l);
String returnedhphone = getdetails.getHphone(l);
String returnedophone = getdetails.getOphone(l);
getdetails.close();
ViewName.setText(returnedname);
ViewPPhone.setText(returnedpphone);
ViewHPhone.setText(returnedhphone);
ViewOPhone.setText(returnedophone);
EditContact = (Button) findViewById(R.id.bEditContact);
EditContact.setOnClickListener(this);
ViewPPhone = (Button) findViewById(R.id.ViewPersonalPhoneNumber);
ViewPPhone.setOnClickListener(this);
ViewHPhone = (Button) findViewById(R.id.ViewHomePhoneNumber);
ViewHPhone.setOnClickListener(this);
ViewOPhone = (Button) findViewById(R.id.ViewOfficePhoneNumber);
ViewOPhone.setOnClickListener(this);
}
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.ViewPersonalPhoneNumber:
Intent dialpersonalphone = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedpphone"));
startActivity(dialpersonalphone );
break;
case R.id.ViewHomePhoneNumber:
Intent dialhome = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedhphone"));
startActivity(dialhome);
break;
case R.id.ViewOfficePhoneNumber:
Intent dialoffice = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedophone"));
startActivity(dialoffice);
break;
case R.id.bEditContact:
startActivity(new Intent("com.example.contactlist.EDITCONTACT"));
break;
}
}
}
LOGCAT
09-26 02:52:11.527: W/dalvikvm(1605): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
09-26 02:52:11.558: E/AndroidRuntime(1605): FATAL EXCEPTION: main
09-26 02:52:11.558: E/AndroidRuntime(1605): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contactlist/com.example.contactlist.ViewContact}: java.lang.NumberFormatException: Invalid long: ""
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.os.Looper.loop(Looper.java:137)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-26 02:52:11.558: E/AndroidRuntime(1605): at java.lang.reflect.Method.invokeNative(Native Method)
09-26 02:52:11.558: E/AndroidRuntime(1605): at java.lang.reflect.Method.invoke(Method.java:511)
09-26 02:52:11.558: E/AndroidRuntime(1605): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-26 02:52:11.558: E/AndroidRuntime(1605): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-26 02:52:11.558: E/AndroidRuntime(1605): at dalvik.system.NativeStart.main(Native Method)
09-26 02:52:11.558: E/AndroidRuntime(1605): Caused by: java.lang.NumberFormatException: Invalid long: ""
09-26 02:52:11.558: E/AndroidRuntime(1605): at java.lang.Long.invalidLong(Long.java:125)
09-26 02:52:11.558: E/AndroidRuntime(1605): at java.lang.Long.parseLong(Long.java:346)
09-26 02:52:11.558: E/AndroidRuntime(1605): at java.lang.Long.parseLong(Long.java:319)
09-26 02:52:11.558: E/AndroidRuntime(1605): at com.example.contactlist.ViewContact.onCreate(ViewContact.java:24)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.Activity.performCreate(Activity.java:5008)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
09-26 02:52:11.558: E/AndroidRuntime(1605): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
09-26 02:52:11.558: E/AndroidRuntime(1605): ... 11 more
DATABASE CLASS
public class DBContact {
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "Name";
public static final String KEY_PERSONALPHONE = "Personalnumber";
public static final String KEY_HOMEPHONE = "Homenumber";
public static final String KEY_OFFICEPHONE = "Officenumber";
private static final String DATABASE_NAME = "Contacts";
private static final String DATABASE_TABLE = "ContactList";
private static final int DATABASE_VERSION = 1;
// Instance of the class DbHelper
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;
public static final String[] KEYS_ALL = { DBContact.KEY_ROWID,
DBContact.KEY_NAME, DBContact.KEY_PERSONALPHONE,
DBContact.KEY_HOMEPHONE, DBContact.KEY_OFFICEPHONE };
private static class DbHelper extends SQLiteOpenHelper {
private static final String DATABASE_CREATE = "create table ContactList (_id integer primary key autoincrement, "
+ "Name text not null, Personalnumber text not null, Homenumber text not null, Officenumber text not null); ";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase ourDatabase) {
// TODO Auto-generated method stub
try {
ourDatabase.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase ourDatabase, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
ourDatabase.execSQL("DROP TABLE IF EXISTS ContactList");
onCreate(ourDatabase);
}
}
// Context of constructor withhin our Class
public DBContact(Context c) {
ourContext = c;
}
// Opens the database
public DBContact open() throws SQLException {
// Constructor for DB Helper class takes in a Context
// Context is passed in is "ourContext" for within our class
ourHelper = new DbHelper(ourContext);
// Passes in DB Name and Version
// ourDatabase is of type SQLite DataBase
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
// Closes the database connection
public void close() {
// refer to our DbHelper and close the SQLite DataBase Helper
ourHelper.close();
ourHelper = null;
ourDatabase = null;
}
// Deletes the Row
public boolean deleteRow(long rowId) {
return ourDatabase.delete(DATABASE_TABLE, DBContact.KEY_ROWID + "="
+ rowId, null) > 0;
}
public String[] queryAll() {
String[] columns = new String[] { KEY_NAME };
Cursor cursor = ourDatabase.query(DATABASE_TABLE, columns, null, null,
null, null, null);
if (cursor != null) {
try {
final int nameColumnIndex = cursor.getColumnIndex(KEY_NAME);
List<String> names = new ArrayList<String>();
cursor.moveToFirst();
while (cursor.moveToNext()) {
names.add(cursor.getString(nameColumnIndex));
}
return names.toArray(new String[names.size()]);
} finally {
cursor.close();
}
}
return null;
//return columns;
}
/*public Cursor queryAll(){
String[] columns = new String[] {KEY_NAME};
return ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
if(data == null){
columns[0] = "NO CONTACTS PRESENT";
return columns;
}else{
return columns;
}
}*/
public long newRow(String name, String pphone, String hphone, String ophone) {
// TODO Auto-generated method stub
ContentValues newvalue = new ContentValues();
newvalue.put(KEY_NAME, name);
newvalue.put(KEY_PERSONALPHONE, pphone);
newvalue.put(KEY_HOMEPHONE, hphone);
newvalue.put(KEY_OFFICEPHONE, ophone);
return ourDatabase.insert(DATABASE_TABLE, null, newvalue);
}
public String getName(Long l) {
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_ROWID, KEY_NAME,
KEY_PERSONALPHONE, KEY_HOMEPHONE, KEY_OFFICEPHONE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "="
+ 1, null, null, null, null);
if (c != null) {
c.moveToFirst();
String name = c.getString(1);
return name;
}
return null;
}
public String getPphone(Long l) {
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_ROWID, KEY_NAME,
KEY_PERSONALPHONE, KEY_HOMEPHONE, KEY_OFFICEPHONE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "="
+ 1, null, null, null, null);
if (c != null) {
c.moveToFirst();
String Pphone = c.getString(2);
return Pphone;
}
return null;
}
public String getHphone(Long l) {
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_ROWID, KEY_NAME,
KEY_PERSONALPHONE, KEY_HOMEPHONE, KEY_OFFICEPHONE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "="
+ 1, null, null, null, null);
if (c != null) {
c.moveToFirst();
String Hphone = c.getString(3);
return Hphone;
}
return null;
}
public String getOphone(Long l) {
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_ROWID, KEY_NAME,
KEY_PERSONALPHONE, KEY_HOMEPHONE, KEY_OFFICEPHONE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "="
+ 1, null, null, null, null);
if (c != null) {
c.moveToFirst();
String Ophone = c.getString(4);
return Ophone;
}
return null;
}
}
Long l = Long.parseLong(name);
is the problem..
String nameclicked = adapterView.getItemAtPosition(position)
.toString();
here nameclicked is a string
you are sending a string value and trying to parse it to number format. So can i know why you are parsing nameClicked?
这篇关于从SQLite数据库传球意图价值观和检索数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!