2013-12-10 153 views
1

我有幾個HTML文件放置在資產文件夾,我有他們的目錄在java文件 但我想將導演存儲到SQLite數據庫,以「pos」作爲主鍵。然後我就只需要一個單一的代碼行,像如何將Html文件目錄存儲在SQL數據庫中?

web.loadUrl(sqlDb.load("select url FROM mytable where pos = " + pos));即東西打開HTML文件

但我不知道

  1. 如何在Eclipse中創建一個SQL數據庫
  2. 如何將我的活動引用到數據庫中
  3. 如何將目錄存儲在sql數據庫中。
下面

是我的代碼

import android.app.Activity; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


public class WebViewActivity extends Activity { 
WebView web; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_web_view); 
    web = (WebView) findViewById(R.id.webView1); 
    web.setWebViewClient(new myWebClient()); 
    web.getSettings().setJavaScriptEnabled(true); 
    int pos = getIntent().getIntExtra("key",0); 
if(pos==0){ web.loadUrl("file:///android_asset/1.html"); 
else if(pos==1){ web.loadUrl("file:///android_asset/2.html");} 
else if(pos==2){ web.loadUrl("file:///android_asset/3.html");}  
else if(pos==3){ web.loadUrl("file:///android_asset/4.html");}   
else if(pos==4){ web.loadUrl("file:///android_asset/5.html");} 

    // similarly for 4 and 5 and so on. 
} 

public class myWebClient extends WebViewClient 
{ 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     // TODO Auto-generated method stub 

     view.loadUrl(url); 
     return true; 

    } 
    @Override 
    public void onReceivedError(WebView view, int errorCode, 
      String description, String failingUrl) { 
    } 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     // TODO Auto-generated method stub 
     super.onPageFinished(view, url); 

    } 
} 
} 
+0

你想要什麼?存儲URL在Sqlite數據庫? –

+0

[Android SQLite教程](http://www.androiddevelopmentworld.blogspot.in/2013/04/android-sqlite-tutorial.html)使用這種方式存儲您的路徑。 –

+0

@Prince是否可以將我的else-if語句存儲在xml文件中並從類文件中調用它? – Anonymous

回答

0

DatabaseHelper.java

public class DatabaseHelper extends SQLiteOpenHelper{ 

    // Database Version 
    private static final int VERSION = 1; 

    // Database Name 
    private static final String NAME = "MyDatabase.db"; 

    // SqliteDatabase 
    SQLiteDatabase db = null; 

    public DatabaseHelper(Context context) { 
     super(context, NAME, null, VERSION); 
    } 

    public void open() throws SQLException { 
     db = this.getWritableDatabase(); 
    } 

    public void close() { 
     db.close(); 
    } 

    //table names 
    public static final String TABLE_URLS = "TABLE_URLS"; 


    // table schema 
    private static final String SCHEMA_TABLE_URLS = "CREATE TABLE "+ TABLE_URLS +" (POS INTEGER PRIMARY KEY, URL TEXT);"; 
     @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(SCHEMA_TABLE_URLS); 
     System.out.println("database created."); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL(SCHEMA_TABLE_URLS); 
     System.out.println("database is updated"); 
    } 

    public long insertURL(ContentValues values){ 
     return db.insert(TABLE_URLS, null, values); 
    } 

    public Cursor getURL(String pos){ 
     return db.query(TABLE_URLS, null, "POS =?", new String[]{pos}, null, null, null); 
    } 
} 

MainActivity.java

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // create database helper object 
     DatabaseHelper helper = new DatabaseHelper(this); 
     helper.open(); 

     // insert url to database 
     ContentValues values; 

     values = new ContentValues(); 
     values.put("POS", "1"); 
     values.put("URL", "file:///android_asset/1.html"); 
     helper.insertURL(values); 


     values = new ContentValues(); 
     values.put("POS", "2"); 
     values.put("URL", "file:///android_asset/2.html"); 
     helper.insertURL(values); 

     values = new ContentValues(); 
     values.put("POS", "3"); 
     values.put("URL", "file:///android_asset/3.html"); 
     helper.insertURL(values); 

     // so on 

     // get url using position 
     String pos = "1"; 
     Cursor c = helper.getURL(pos); 
     c.moveToFirst(); 
     String url = c.getString(c.getColumnIndex("URL")); 
     System.out.println("URL "+url); 
     c.close(); 

     helper.close(); 
    } 
} 
+0

你能給我你的電子郵件嗎? – Anonymous

+0

我給你發了一條消息 – Anonymous

0

關於問題1 - 2有2個選項閱讀以下tutorial1tutorial2

關於問題3,我明白你的意思,保存路徑這些文件。我認爲最好的方法是將這些路徑作爲SQLite字符串存儲在您的某個表中。

希望這是你所需要的。

+0

你知道如何增加堆棧大小嗎?這可以解決我的問題 – Anonymous

+0

@Anonymous檢查此:http://stackoverflow.com/a/16920207/1405983 –

相關問題