Java 使用Android eclipse向SQLite添加值
我是Android开发的新手。我正在尝试用sqllite创建一个数据库表,并向其中添加值。我使用以下代码 add.xmlJava 使用Android eclipse向SQLite添加值,java,android,sqlite,Java,Android,Sqlite,我是Android开发的新手。我正在尝试用sqllite创建一个数据库表,并向其中添加值。我使用以下代码 add.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> <EditText android:id="@+id/nametxt" android:layout_width="wrap_content" android:layout_heig
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/nametxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/notxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" >
</EditText>
<Button
android:id="@+id/addcontactBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:onClick="addContacts"
android:text="Add New" />
</LinearLayout>
}
Detail.java
public class Detail {
private int id;
private String name;
private String number;
public long getId() {return id; }
public void setId(int id) {this.id = id;}
public String getName() {return this.name;}
public void setName(String name) {this.name = name;}
public String getNumber(){return this.number; }
public void setnumber(String number){ this.number=number; }
}
DetailOperations.java
public class DetailOperations {
private DataBase dbHelper;
private String[] DETAILS_TABLE_COLUMNS = { DataBase.DETAIL_ID, DataBase.DETAIL_NAME,DataBase.DETAIL_NO };
private SQLiteDatabase database;
public DetailOperations(Context context) {
dbHelper = new DataBase(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase(); }
public void close() { dbHelper.close(); }
public Detail addDetail(String name,String number) {
ContentValues values = new ContentValues();
values.put(DataBase.DETAIL_NAME, name);
values.put(DataBase.DETAIL_NO, number);
long detId = database.insert(DataBase.DETAILS, null, values);
Cursor cursor = database.query(DataBase.DETAILS,
DETAILS_TABLE_COLUMNS, DataBase.DETAIL_ID + " = "
+ detId, null, null, null, null);
cursor.moveToFirst();
Detail newdetail = parseDetail(cursor);
cursor.close();
return newdetail;
}
private Detail parseDetail(Cursor cursor) {
Detail d = new Detail();
d.setId((cursor.getInt(0)));
d.setName(cursor.getString(1));
d.setnumber(cursor.getString(2));
return d;
} }
Add.java
public class Add extends Activity {
private DetailOperations detailDBoperation;
@Override
public void onCreate(Bundle savedInstaceState){
super.onCreate(savedInstaceState);
setContentView(R.layout.add);
}
public void addDetails(View view){
detailDBoperation=new DetailOperations(this);
detailDBoperation.open();
EditText name=(EditText) findViewById(R.id.nametxt);
EditText number=(EditText) findViewById(R.id.notxt);
detailDBoperation.addDetail(name.getText().toString(), number.getText().toString());
name.setText("");
number.setText("");
}}
当我按下“添加新的”按钮,我得到了错误,不幸的是,应用程序已停止,并显示上一页。我签入DDMS,它显示创建了数据库表,但并没有在表中添加值
日志显示
09-23 04:50:17.914: E/AndroidRuntime(10574): java.lang.IllegalStateException:
Could not find a method addContacts(View) in the activity class com.example.experiments.Add for onClick handler on view class android.widget.Button with id 'addcontactBtn'
您想调用方法
addContacts
(android:onClick=“addContacts”
),并在活动中调用它addDetails(View)
使用
public-void-addContacts(View-View)
更改public-void-addContacts(View-View)您想要调用方法addContacts
(android:onClick=“addContacts”
),并且您在活动中调用了它addDetails(View-View)
将公共void addDetails(视图视图)
更改为公共void addContacts(视图)
将以下方法/方法签名公共void addDetails(视图)
替换为公共void addContacts(视图)
,因为这是布局XML配置文件中定义的方法:
<Button
android:id="@+id/addcontactBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:onClick="addContacts" <!-- here -->
android:text="Add New" />
android:text=“添加新”/
将以下方法/方法签名public void addDetails(视图)
替换为public void addContacts(视图)
,因为该方法在布局XML配置文件中定义为:
<Button
android:id="@+id/addcontactBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:onClick="addContacts" <!-- here -->
android:text="Add New" />
android:text=“添加新”/
确保已包含onClick for按钮:
<Button
android:id="@+id/addcontactBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:onClick="addContacts"
android:text="Add New"
android:onClick="addDetails"/>
确保已包含onClick for按钮:
<Button
android:id="@+id/addcontactBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:onClick="addContacts"
android:text="Add New"
android:onClick="addDetails"/>
你的LogCat怎么说?你能在你的代码下面跳过LogCat错误吗?这应该有助于我们找到您的问题。@blackpanther:编辑了我的问题您的LogCat说了什么?您能在代码下面跳过LogCat错误吗?这应该有助于我们找到您的问题。@blackpanther:编辑了我的问题,但现在在cat 09-23 04:57:34.534:E/SQLiteLog(12585):(1)接近“null\u no”:语法错误已更改,但现在在cat 09-23 04:57:34.534:E/SQLiteLog(12585)日志中显示错误:(1)接近“null\u no”:syntax errorchanged,但现在在cat 09-23 04:57:34.534:E/SQLiteLog(12585):(1)接近“null_no”:syntax errorchanged,但现在在cat 09-23 04:57:34.534:E/SQLiteLog(12585)日志中显示错误:(1)接近“null_no”:syntax error