2014-10-10 16 views
0

我有一個簡單的Settingsview(通過片段),我想從數據庫(SQLite)預填充數據。我的DatabaseResults在Settingsfragment.java中,現在我不知道如何讓它們在XML中(Android:提示)。在查看中顯示數據庫結果

這是我SettingsFragment.java現在

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 

import eu.twenty1media.smokestop.model.Asettings; 
import eu.twenty1media.smokestop.model.DatabaseHandler; 


public class SettingsFragment extends Fragment { 

    public SettingsFragment(){} 



    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_settings, container, false); 

     //Initalize or create Database 
     final DatabaseHandler db = new DatabaseHandler(getActivity()); 
     db.getAsettings(1); 



     Button mButton = (Button) rootView.findViewById(R.id.applysettings); 
     mButton.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       db.updateAsettings(); 
       //db.addData(); wenn Datensatz erst geschrieben werden muss 
       Toast.makeText(getActivity(), "Settings saved", Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     return rootView; 
    } 
} 

而這個功能getAsettings

public Asettings getAsettings(int id) 
{ 
    // 1. get reference to readable DB 
    SQLiteDatabase db = this.getReadableDatabase(); 
    // 2. build query 
    Cursor cursor = db.query(DBNAME, 
      new String[]{"currency" 
        , "pricepp" 
        , "cigpp" 
        , "name" 
        , "cigperday" 
        , "welcome" 
        , "lastcig"},"id=?", 
      new String[] { String.valueOf(id) }, 
      null, // e. group by 
      null, // f. having 
      null, // g. order by 
      null); // h. limit 
    // 3. if we got results get the first one 
    if (cursor != null) 
     cursor.moveToFirst(); 
    // 4. build object 

    // 4. build book object 
    Asettings asettings = new Asettings(); 
    //asettings.setId(Integer.parseInt(cursor.getString(1))); 
    asettings.setCurrency(cursor.getString(0)); 
    asettings.setPricepp(Float.parseFloat(cursor.getString(1))); 
    asettings.setCigpp(Integer.parseInt(cursor.getString(2))); 
    asettings.setFname(cursor.getString(3)); 
    asettings.setCigperday(Integer.parseInt(cursor.getString(4))); 
    asettings.setWelcome(Integer.parseInt(cursor.getString(5))); 
    asettings.setLastcig(Integer.parseInt(cursor.getString(6))); 


    Log.d("getAsettings(" + id + ")", asettings.toString()); 

    // 5. return Asettings 
    return asettings; 

也許任何人有一個很好的教程或我一個提示?我在Web上搜索了大約一個小時,我發現唯一的事情就是ListViewAdapter。但是我沒有一個Listview,只有6個變量放在正確的Android中:在Textboxes中提示。

回答

0

流是這樣的...... 1.實例化你想要結果去的文本視圖。 2.讀取數據庫並將結果保存爲局部變量。您可以檢查它們是否存在,並已通過日誌記錄正確讀取到控制檯。 3.將結果從2寫入到您在1中創建的視圖。

+0

我真的停留在將結果放在SettingsFragment.xml中的部分。我見過任何地方像%1 $ s的東西,但不知道它是如何工作的。 – Nick 2014-10-11 11:08:25

+0

您不需要將任何內容放入xml文件中。 – NeilH 2014-10-13 01:08:18

+0

你不需要把任何東西放在xml文件中。我對你想要達到的目標感到困惑。你想讓asettings的返回值出現在你的分片佈局上嗎?如果是這樣,你需要按照以上三個步驟 – NeilH 2014-10-13 01:24:21