解决getReadableDatabase()和getWritableDatabase()等报错问题并完成android studio上简单的用户注册和登陆的设计

本文详细介绍了如何在Android Studio中处理getReadableDatabase()和getWritableDatabase()报错问题,并提供了一个简单有效的用户注册和登录功能的设计方案,确保数据操作的顺利进行。
摘要由CSDN通过智能技术生成
package com.example.exp2;

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.provider.Telephony;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.ScaleAnimation;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;

public class MainActivity extends AppCompatActivity{
   

    private EditText edittext1;
    private EditText edittext2;
    private Button    button;
    private Button    button1;
    MyHelper myHelper;
    SQLiteDatabase db;
    ContentValues values;
    int a=0;

    protected void onCreate(@Nullable Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final MyHelper myHelper=new MyHelper(this);//作用解决getReadableDatabase()和getWritableDatabase()等报错问题
        edittext1 = findViewById(R.id.editText1);
        edittext2 = findViewById
### 回答1: 你可以使用Android Studio中的SQLiteDatabase类来获取数据库的名称和电话号,然后将它们展示在Exetview上,代码如下://获取数据库名称和电话号 SQLiteDatabase db = getReadableDatabase(); Cursor cursor = db.rawQuery("SELECT * FROM table_name", null);//展示到Exetview上 String[] columns = new String[] { "name", "phone" }; int[] to = new int[] { R.id.nameTextView, R.id.phoneTextView }; SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor, columns, to); ListView list = (ListView)findViewById(R.id.listView); list.setAdapter(cursorAdapter); ### 回答2: 下面是使用Android Studio编写的自动获取数据库名字和电话号并显示到Exetview上的代码: ```java import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private TextView dbNameTextView; private TextView phoneNumberTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbNameTextView = findViewById(R.id.dbNameTextView); phoneNumberTextView = findViewById(R.id.phoneNumberTextView); // 获取数据库名字并显示在TextView上 String dbName = getDatabaseName(); dbNameTextView.setText(dbName); // 获取电话号并显示在TextView上 String phoneNumber = getPhoneNumber(); phoneNumberTextView.setText(phoneNumber); } // 获取数据库名字的方法 private String getDatabaseName() { SQLiteDatabase db = getApplicationContext().openOrCreateDatabase("myDatabase", MODE_PRIVATE, null); String dbName = db.getPath(); db.close(); return dbName; } // 获取电话号的方法 private String getPhoneNumber() { String phoneNumber = ""; // 使用ContentProvider查询电话号 Cursor cursor = getContentResolver().query(android.provider.ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if (cursor != null && cursor.moveToFirst()) { phoneNumber = cursor.getString(cursor.getColumnIndex(android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER)); cursor.close(); } return phoneNumber; } } ``` 上述代码的`getDatabaseName()`方法利用`openOrCreateDatabase()`方法创建或打开一个数据库,并通过`getPath()`方法获取数据库文件的路径,然后将路径显示在名为`dbNameTextView`的TextView上。 而`getPhoneNumber()`方法中使用`getContentResolver().query()`方法实现通过ContentProvider查询电话号,获取到第一个联系人的电话号,然后将其显示在名为`phoneNumberTextView`的TextView上。 当应用运行时,自动获取数据库名字和电话号并在界面上展示。需要注意的是,必须在`AndroidManifest.xml`文件中添加对`READ_CONTACTS`权限的声明,以便查询电话号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值