从SQLite数据库传球意图价值观和检索数据 [英] Passing Intent Values and retrieving data from SQLite database

查看:148
本文介绍了从SQLite数据库传球意图价值观和检索数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经写了类似于Android的通讯录中的应用。我在我的列表中的几个项目,当我点击他们,我从一个数据库,并显示在另一个view.But的信息时,我点击列表视图中的名称之一,我得到一个空的画面(仿真器goesblank) 。请帮帮忙,我是新来的Andr​​oid编程。所有的建议表示欢迎。

感谢您

 公共类联系人扩展活动实现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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆