Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Mobile > Mobile Forum > Android การเรียกใช้ database sqlite มากกว่า 2 activity แล้วมัน Error อ่ะครับ



 

Android การเรียกใช้ database sqlite มากกว่า 2 activity แล้วมัน Error อ่ะครับ

 



Topic : 093905

Guest




ประมานว่า ผมมี table 1 table และผมต้องการให้มัน select 2 activity อ่ะครับ ไม่ทราบว่าต้องทำอย่างไร เพราะ ผมทำได้แค่ select แค่ activity เดียว แต่อีก activity ไม่สามารถ select ได้อ่ะครับ



Tag : Mobile







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-04-19 01:15:28 By : Film View : 1433 Reply : 8
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Select ไปใช้ 2 หน้าหรือว่ายังไงครับ ลองอธิบายเพิ่มเติม ภาพประกอบ/ข้อผิดพลาด






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-19 09:57:23 By : mr.win
 


 

No. 2

Guest


หน้าแรกนะครับ
Code (Android-Java)
final Database daba = new Database(this);
try {
					String resultServer = getJSONUrl(url, params1);
					JSONArray data = new JSONArray(resultServer);
					
					mArrList = new ArrayList<HashMap<String, String>>();
					HashMap<String, String> map;
					
					for(int i = 0; i < data.length(); i++){
		                JSONObject c = data.getJSONObject(i);
		    			
		    			String id1 = c.getString("id");
		    			String name1 = c.getString("name");
		    			String address1 = c.getString("address");
		    			String latitude1 = c.getString("latitude");
		    			String longtitude1 = c.getString("longtitude");
		    			
		    			daba.insertdb(id1,name1,address1,latitude1,longtitude1);  /// insert ไป sqlite
		                Log.i("Recieve"+i,id1+" "+name1); 
					}
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}


หน้าที่เกี่ยวกับ Database นะครับ
Code (Android-Java)
public class Database extends SQLiteOpenHelper {
	
	private static final String DB_NAME = "mydatabase";
	private static final String TABLE_MEMBER = "schedule1";
    private static final int DB_VERSION = 1;
    SQLiteDatabase db;
    
	public Database(Context context) {
		super(context, DB_NAME, null, DB_VERSION);
		// TODO Auto-generated constructor stub
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
	
			db.execSQL("CREATE TABLE " + TABLE_MEMBER + "("
                + "idk INTEGER primary key AUTOINCREMENT,"
                + "id TEXT(100)," 
                + "name TEXT(100),"
                + "address TEXT(100),"
                + "latitude INTEGER,"
                + "longtitude INTEGER);");
			Log.d("CREATE TABLE","Create Table Successfully.");
	}

	public void insertdb(String id1,String name1,String address1,String latitude1,String longtitude1){
		 
		try{
			db = this.getWritableDatabase(); // Write Data
			
			db.execSQL("INSERT or replace INTO "+TABLE_MEMBER+" (idk,id,name,address,latitude,longtitude) " +
		                "VALUES(NULL,'"+id1+"','"+name1+"','"+address1+"','"+latitude1+"','"+longtitude1+"')");
		    db.close();
		 }catch(Exception e){e.printStackTrace();}
	}
	
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		db.execSQL("DROP TABLE "+TABLE_MEMBER);
		// Re Create on method  onCreate
        onCreate(db);
	}
	
	public Cursor selectdata(){
		try{
			db = this.getReadableDatabase(); // Read Data
			String strSQL = "SELECT * FROM " + TABLE_MEMBER;
			Cursor cursor = db.rawQuery(strSQL, null);
			return cursor;
		}catch(Exception e){return null;}
	} 
}


และหน้าที่ 3 ที่มีปัญหานะครับ
Code (Android-Java)
public class Googlemap extends FragmentActivity {

	private GoogleMap myMap;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_googlemap);
		
		 SupportMapFragment mySupportMapFragment = 
                (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map_canvas);
         myMap = mySupportMapFragment.getMap();
         
 		 myMap.setMyLocationEnabled(true);

 		Database daba = new Database(this);
		Cursor locationCursor = daba.selectdata();
		int i=0;
 		do {
 	        String id = locationCursor.getString(locationCursor
 	                .getColumnIndex("id"));
 	        String name = locationCursor.getString(locationCursor
 	                .getColumnIndex("name"));
 	        Double latitude = (Double) locationCursor.getDouble(locationCursor
 	                .getColumnIndex("latitude"));
 	        Double longitude = (Double) locationCursor.getDouble(locationCursor
 	                .getColumnIndex("longtitude"));
 	       Log.i("Recieve"+i,idowner+" "+latitude);
 	       i++;

// 	        try{
// 	        	myMap.addMarker(new MarkerOptions()
// 	        	.position(new LatLng(latitude, longitude))
//                .title(id)
//                .snippet(name)
//                .icon(BitmapDescriptorFactory.defaultMarker()));
// 	        }catch(Exception e){e.printStackTrace();}

 		}while(locationCursor.moveToNext());
 	}
}


Code
04-19 18:10:05.734: E/AndroidRuntime(4775): FATAL EXCEPTION: main 04-19 18:10:05.734: E/AndroidRuntime(4775): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.police/com.example.police.Googlemap}; have you declared this activity in your AndroidManifest.xml? 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.app.Activity.startActivityForResult(Activity.java:3190) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.app.Activity.startActivity(Activity.java:3297) 04-19 18:10:05.734: E/AndroidRuntime(4775): at com.example.police.DetailActivity$1$1.onClick(DetailActivity.java:123) 04-19 18:10:05.734: E/AndroidRuntime(4775): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.os.Handler.dispatchMessage(Handler.java:99) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.os.Looper.loop(Looper.java:137) 04-19 18:10:05.734: E/AndroidRuntime(4775): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-19 18:10:05.734: E/AndroidRuntime(4775): at java.lang.reflect.Method.invokeNative(Native Method) 04-19 18:10:05.734: E/AndroidRuntime(4775): at java.lang.reflect.Method.invoke(Method.java:511) 04-19 18:10:05.734: E/AndroidRuntime(4775): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-19 18:10:05.734: E/AndroidRuntime(4775): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-19 18:10:05.734: E/AndroidRuntime(4775): at dalvik.system.NativeStart.main(Native Method)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-19 18:26:22 By : Film
 

 

No. 3

Guest


ขออภัยครับ ตาลาย จริงๆ มันต้องเป็นไฟล์ log อันนี้ครับ

Code
04-19 22:37:22.683: W/dalvikvm(10174): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 04-19 22:37:22.713: E/AndroidRuntime(10174): FATAL EXCEPTION: main 04-19 22:37:22.713: E/AndroidRuntime(10174): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.police1/com.example.police1.Googlemap}: java.lang.NullPointerException 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread.access$600(ActivityThread.java:123) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.os.Handler.dispatchMessage(Handler.java:99) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.os.Looper.loop(Looper.java:137) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-19 22:37:22.713: E/AndroidRuntime(10174): at java.lang.reflect.Method.invokeNative(Native Method) 04-19 22:37:22.713: E/AndroidRuntime(10174): at java.lang.reflect.Method.invoke(Method.java:511) 04-19 22:37:22.713: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-19 22:37:22.713: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-19 22:37:22.713: E/AndroidRuntime(10174): at dalvik.system.NativeStart.main(Native Method) 04-19 22:37:22.713: E/AndroidRuntime(10174): Caused by: java.lang.NullPointerException 04-19 22:37:22.713: E/AndroidRuntime(10174): at com.example.police1.Googlemap.onCreate(Googlemap.java:30) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.Activity.performCreate(Activity.java:4465) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 04-19 22:37:22.713: E/AndroidRuntime(10174): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 04-19 22:37:22.713: E/AndroidRuntime(10174): ... 11 more

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-19 22:47:52 By : Film
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Quote:
java.lang.NullPointerException


มันมีค่าว่างน่ะครับ อาจจะต้องลองไล่ Debug ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 06:43:36 By : mr.win
 


 

No. 5

Guest


ผมได้ลองใส่ Debug ในหน้าที่ 3 แล้ว
Code (Android-Java)
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

import com.example.db.Dbselect;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

public class Googlemap extends FragmentActivity {

	private GoogleMap map;
	private Dbselect db;
	private Context context;
	
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_googlemap);
		
		SupportMapFragment mySupportMapFragment = 
                (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map_canvas);
         map = mySupportMapFragment.getMap();
         
         context = this;
         db = new Dbselect(context);
         
         Cursor locationCursor = db.selectdata();
          int i=0;
        try{
        	do {
  	        String id = locationCursor.getString(locationCursor
  	                .getColumnIndex("id"));
  	        String name = locationCursor.getString(locationCursor
  	                .getColumnIndex("name"));
  	        Double latitude = (Double) locationCursor.getDouble(locationCursor
  	                .getColumnIndex("latitude"));
  	        Double longitude = (Double) locationCursor.getDouble(locationCursor
  	                .getColumnIndex("longtitude"));
  	        Log.i("test"+i,idowner+" "+latitude);
  	        	i++;
        	}while(locationCursor.moveToNext());
        }catch(Exception e){e.printStackTrace();}
	}
}


พอใส่ debug แล้วเป็นแบบนี้ครับ
Code
04-20 17:48:35.668: W/System.err(2720): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2 04-20 17:48:35.676: W/System.err(2720): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:400) 04-20 17:48:35.696: W/System.err(2720): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 04-20 17:48:35.696: W/System.err(2720): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) 04-20 17:48:35.706: W/System.err(2720): at com.example.police1.Googlemap.onCreate(Googlemap.java:37) 04-20 17:48:35.706: W/System.err(2720): at android.app.Activity.performCreate(Activity.java:4465) 04-20 17:48:35.706: W/System.err(2720): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 04-20 17:48:35.716: W/System.err(2720): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 04-20 17:48:35.716: W/System.err(2720): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 04-20 17:48:35.716: W/System.err(2720): at android.app.ActivityThread.access$600(ActivityThread.java:123) 04-20 17:48:35.726: W/System.err(2720): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 04-20 17:48:35.726: W/System.err(2720): at android.os.Handler.dispatchMessage(Handler.java:99) 04-20 17:48:35.726: W/System.err(2720): at android.os.Looper.loop(Looper.java:137) 04-20 17:48:35.726: W/System.err(2720): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-20 17:48:35.736: W/System.err(2720): at java.lang.reflect.Method.invokeNative(Native Method) 04-20 17:48:35.754: W/System.err(2720): at java.lang.reflect.Method.invoke(Method.java:511) 04-20 17:48:35.756: W/System.err(2720): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-20 17:48:35.756: W/System.err(2720): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-20 17:48:35.756: W/System.err(2720): at dalvik.system.NativeStart.main(Native Method)


ปล. อยากทราบว่า แก้ไขกระทู้ได้หรือไม่ครับ เผื่อในกรณีที่พิมผิดหรืออะไรประมานนี้อ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 17:56:35 By : Film
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

สมัครสมาชิก จะแก้ไขได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 19:15:10 By : mr.win
 


 

No. 7

Guest


เคครับ นั่งทำจนได้และครับ คือผม สร้าง class selectAll มาเพิ่มครับก็จะได้แบบนี้
Code (Android-Java)
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class Dbselect {
	private SQLiteDatabase db;
	
	public Dbselect(Context context){
		db = this.getReadableDatabase();
	}
	
	public Cursor selectdata(){
		try{
			String strSQL = "SELECT * FROM " + TABLE_MEMBER;
			Cursor cursor = db.rawQuery(strSQL, null);
			return cursor;
		}catch(Exception e){return null;}
	} 
}


แล้วจึงไปเรียกใช้ใน Googlemap ก็จะได้แบบนี้ และผมก็ลืมใส่ locationCursor.moveToFirst(); มันเลย Error ครับ

Code (Android-Java)
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class Googlemap extends FragmentActivity {

	private GoogleMap map;
	private Dbselect db;
	private Context context;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_googlemap);
		
		SupportMapFragment mySupportMapFragment = 
                (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map_canvas);
         map = mySupportMapFragment.getMap();
         
         map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(13,100),8));     
         
         context = this;
         db = new Dbselect(context);
         
         Cursor locationCursor = db.selectdata();
          int i=0;
    
        	locationCursor.moveToFirst();
        	do {
        		String id = locationCursor.getString(locationCursor
  	                .getColumnIndex("id"));
        		String name = locationCursor.getString(locationCursor
  	                .getColumnIndex("name"));
        		Double latitude = (Double) locationCursor.getDouble(locationCursor
  	                .getColumnIndex("latitude"));
        		Double longitude = (Double) locationCursor.getDouble(locationCursor
  	                .getColumnIndex("longtitude"));
        		
//        		map.addMarker(new MarkerOptions()
//    		 		.position(new LatLng(latitude, longitude))
//    		 		.icon( BitmapDescriptorFactory.defaultMarker())
//    		 		.title(idowner)
//    		 		.snippet(name));
        		
        		Log.i("test"+i,id+" "+latitude);
  	        		i++;
        	}while(locationCursor.moveToNext());
	}
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 20:05:16 By : Film
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ยินดีด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 20:53:33 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android การเรียกใช้ database sqlite มากกว่า 2 activity แล้วมัน Error อ่ะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่