У меня есть программа, которая записывает базу данных SQLite и кнопку VIEW, которая читает базу данных. Всякий раз, когда я нажимаю кнопку VIEW, он ничего не делает, и я даже не получаю никаких ошибок или предупреждений. Я не знаю, чего мне не хватает. Может ли кто-нибудь помочь мне. Я уверен, что мне не хватает чего-то очень маленького, но я не могу понять, что.
package com.newboston.thefirst;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SQLiteExample extends Activity implements OnClickListener{
Button sqlUpdate, sqlView;
EditText sqlName, sqlFriend;
boolean worked;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sqliteexample);
sqlUpdate = (Button) findViewById(R.id.bsqlUpdate);
sqlView = (Button) findViewById(R.id.bsqlview);
sqlName = (EditText) findViewById (R.id.etsqlName);
sqlFriend = (EditText) findViewById(R.id.etsqlfrnd);
sqlUpdate.setOnClickListener(this);
sqlName.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.bsqlUpdate:
try {
String name = sqlName.getText().toString();
String frnd = sqlFriend.getText().toString();
Friendliness entry = new Friendliness (SQLiteExample.this);
entry.open();
entry.createEntry(name, frnd);
entry.Close();
worked = true;
} catch (SQLiteException e) {
worked= false;
} finally {
if (worked){
Dialog d = new Dialog(this);
d.setTitle("success!");
TextView tv = new TextView(this);
tv.setText("done!");
d.setContentView(tv);
d.show();
}
}
break;
case R.id.bsqlview:
sqlView.setText("done");
Intent i = new Intent ("com.newboston.thefirst.SQLView");
startActivity(i);
break;
}
}
}
Мой xml-код для этого:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name" />
<EditText
android:id="@+id/etsqlName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Friendliness" />
<EditText
android:id="@+id/etsqlfrnd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/bsqlUpdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Update SQLite Database" />
<Button
android:id="@+id/bsqlview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View" />
</LinearLayout>
И мой код SQLView:
package com.newboston.thefirst;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class SQLView extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlview);
TextView tv = (TextView) findViewById(R.id.tvSQLinfo);
Friendliness info = new Friendliness(this);
info.open();
String data = info.getData();
info.Close();
tv.setText(data);
}
}
Пожалуйста, дайте мне знать, нужен ли вам какой-либо другой код.
Вы забыли установить onClickListener. Добавьте это в метод onCreate вашего класса SQLiteExample...
sqlView.setOnClickListener(this);