내가이 글고에서 값을 얻을 코드 및 쿼리 데이터베이스가에 쿼리 데이터베이스 기본안드로이드 - 글고
는 MainActivity :
public class MainActivity extends Activity {
private ArrayList<String> results = new ArrayList<String>();
private String tableName = "horarios";
private SQLiteDatabase newDB;
Button bt_search;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TestAdapter mDbHelper = new TestAdapter(getBaseContext());
mDbHelper.createDatabase();
bt_search = (Button)findViewById(R.id.btnsearch);
bt_search.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
setContentView(R.layout.activity_main);
openAndQueryDatabase();
displayResultList();
}
});
}
public void back(View v) {
setContentView(R.layout.main);
}
private void displayResultList() {
lv = (ListView) findViewById(R.id.list);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
results);
lv.setAdapter(arrayAdapter);
}
private void openAndQueryDatabase() {
try {
EditText o = (EditText)findViewById(R.id.txtorigem);
EditText d = (EditText)findViewById(R.id.txtdestino);
String _origem = o.getText().toString();
String _destino = d.getText().toString();
DBHelper dbHelper = new DBHelper(this.getApplicationContext());
newDB = dbHelper.getWritableDatabase();
Cursor c = newDB.rawQuery("SELECT origem, destino, hora FROM " + tableName +" WHERE origem='"+_origem+"' and destino='"+_destino+"'", null);
if (c != null) {
if (c.moveToFirst()) {
do {
String origem = c.getString(c.getColumnIndex("origem"));
String destino = c.getString(c.getColumnIndex("destino"));
String hora = c.getString(c.getColumnIndex("hora"));
results.add("Origem: " + origem + ", Destino: " + destino +" - Hora: "+hora);
}while (c.moveToNext());
}
}
} catch (SQLiteException se) {
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
} finally {
if (newDB != null)
newDB.close();
}
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btn_back" >
</ListView>
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Retroceder"
android:onClick="back" />
</RelativeLayout>
메신저 노력 쿼리 데이터베이스를 기반으로 두 EditText의 가치에,하지만 뭔가 잘못하고있어 :
02-26 06:30:31.626: E/AndroidRuntime(14068): FATAL EXCEPTION: main
02-26 06:30:31.626: E/AndroidRuntime(14068): Process: com.example.app.arr, PID: 14068
02-26 06:30:31.626: E/AndroidRuntime(14068): java.lang.NullPointerException
02-26 06:30:31.626: E/AndroidRuntime(14068): at com.example.app.arr.MainActivity.openAndQueryDatabase(MainActivity.java:70)
02-26 06:30:31.626: E/AndroidRuntime(14068): at com.example.app.arr.MainActivity.access$0(MainActivity.java:66)
02-26 06:30:31.626: E/AndroidRuntime(14068): at com.example.app.arr.MainActivity$1.onClick(MainActivity.java:39)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.view.View.performClick(View.java:4438)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.view.View$PerformClick.run(View.java:18422)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.os.Handler.handleCallback(Handler.java:733)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.os.Handler.dispatchMessage(Handler.java:95)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.os.Looper.loop(Looper.java:136)
02-26 06:30:31.626: E/AndroidRuntime(14068): at android.app.ActivityThread.main(ActivityThread.java:5017)
02-26 06:30:31.626: E/AndroidRuntime(14068): at java.lang.reflect.Method.invokeNative(Native Method)
02-26 06:30:31.626: E/AndroidRuntime(14068): at java.lang.reflect.Method.invoke(Method.java:515)
02-26 06:30:31.626: E/AndroidRuntime(14068): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-26 06:30:31.626: E/AndroidRuntime(14068): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-26 06:30:31.626: E/AndroidRuntime(14068): at dalvik.system.NativeStart.main(Native Method)
나는이 오류가 EditText에서 가치를 얻으려고 시도하지만 해결책을 찾아 내지 못한다는 것을 깨달았습니다. MainActivity 줄 70 : String _origem = o.getText().toString();
'MainActivity' 클래스 코드를 게시하십시오. –
MainActivity 게시 됨 – Galion
activity_main 레이아웃 파일을 게시 할 수 있습니까? – Giacomoni