2016-04-10 17 views
0

ListViewにアイテムを追加しようとしているときに、ユーザがSAVEボタンを押すたびにDialogにアイテムを追加しようとしています。私はそのSAVE ButtonのためにonClickListenerをコーディングする以外はすべてを正しく行ったと思います。リストビューからSQLiteデータベース

誰かが私を助けることができたら本当に感謝します。

ここに私の行のレイアウトです:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="80dp" 
     android:background="#cccccc" 
     > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Ime predmeta" 
      android:layout_gravity="center" 
      android:layout_marginLeft="15dp" 
      android:textSize="20sp" 
      android:textColor="#424242" 
      android:id="@+id/textViewRowListaPredmetiImePredmeta"/> 

    </LinearLayout> 

データベースのヘルパークラス:

public class PredmetiDodajDBHelper extends SQLiteOpenHelper{ 

    public static final int DATABASSE_VERSION = 3; 
    public static final String DATABASE_NAME = "dodaj_predmet.db"; 
    public static final String TABLE_NAME = "predmeti"; 
    public static final String COLUMN_ID = "_id"; 
    public static final String COLUMN_IMEPREDMETA = "imepredmeta"; 


    public PredmetiDodajDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
     super(context, DATABASE_NAME, factory, DATABASSE_VERSION); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String query = "CREATE TABLE " + TABLE_NAME + "(" + 
       COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       COLUMN_IMEPREDMETA + " TEXT NOT NULL " + 
       ");"; 
     db.execSQL(query); 

    } 



    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
     onCreate(db); 

    } 

} 

dataoperationクラス

public class dataoperation { 

    SQLiteDatabase database_ob; 
    PredmetiDodajDBHelper openHelper_ob; 
    Context context; 


    public dataoperation(Context c) { 
     // TODO Auto-generated constructor stub 

     context=c; 

    } 

    public dataoperation opnToRead() { 
     openHelper_ob = new PredmetiDodajDBHelper(context, 
       openHelper_ob.DATABASE_NAME, null, openHelper_ob.DATABASSE_VERSION); 
     database_ob = openHelper_ob.getReadableDatabase(); 
     return this; 

    } 

    public dataoperation opnToWrite() { 
     openHelper_ob = new PredmetiDodajDBHelper(context, 
       openHelper_ob.DATABASE_NAME, null, openHelper_ob.DATABASSE_VERSION); 
     database_ob = openHelper_ob.getWritableDatabase(); 
     return this; 

    } 

    public void Close() { 
     database_ob.close(); 
    } 

    public long insertData(String fname) { 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(openHelper_ob.COLUMN_IMEPREDMETA, fname); 
     opnToWrite(); 
     long val = database_ob.insert(openHelper_ob.TABLE_NAME, null, 
       contentValues); 
     Close(); 
     return val; 

    } 

    public Cursor readdata() { 
     String[] cols = { openHelper_ob.COLUMN_ID, openHelper_ob.COLUMN_IMEPREDMETA }; 
     opnToWrite(); 
     @SuppressWarnings("static-access") 
     Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols, null, 
       null, null, null, null); 

     return c; 

    } 
    public Cursor queryAll(int nameId) { 
     String[] cols = { openHelper_ob.COLUMN_ID, openHelper_ob.COLUMN_IMEPREDMETA}; 
     opnToWrite(); 
     Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols, 
       openHelper_ob.COLUMN_ID + "=" + nameId, null, null, null, null); 

     return c; 

    } 
} 

そしてDialogListViewが含まれている活動からのコードの一部:

editTextDodajPredmetImePredmeta = (EditText)dialog. findViewById(R.id.editTextDodajPredmetImePredmeta); 
        buttonSpremiPredmet = (Button)dialog. findViewById(R.id.buttonSpremiPredmet); 
        imePredmeta = editTextDodajPredmetImePredmeta.getText().toString(); 


        lv=(ListView)findViewById(R.id.lista_predmeti); 
        //bt=(Button)findViewById(R.id.buttonSpremiPredmet); 
        adapter_ob = new dataoperation(Ocijene.this); 

        String[] from = { PredmetiDodajDBHelper.COLUMN_IMEPREDMETA }; 
        int[] to = { R.id.editTextDodajPredmetImePredmeta }; 
        cursor = adapter_ob.readdata(); 
        SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(Ocijene.this, 
          R.layout.row_lista_predmeti, cursor, from, to); 
        lv.setAdapter(cursorAdapter); 

        buttonSpremiPredmet.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          lv.addView(editTextDodajPredmetImePredmeta); 


         } 
        }); 

のEditTextとすべてのものは、このXMLからのものであること:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="26dp" 
    android:paddingRight="26dp" 
    android:paddingTop="15dp" 
    android:paddingBottom="25dp"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="@string/dialog_predmeti_ime_predmeta" 
     android:layout_marginBottom="5dp" 
     android:id="@+id/textView5" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editTextDodajPredmetImePredmeta" 
     android:layout_marginBottom="15dp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="@string/dialog_predmeti_vrsta_ispita" 
     android:layout_marginBottom="5dp" 
     android:id="@+id/textView6" /> 

    <Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/spinnerPredmetiLayoutDialogDodajVrsteIspita" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Save" 
     android:id="@+id/buttonSpremiPredmet" /> 

</LinearLayout> 

私はlv.addView(editTextDodajPredmetImePredmeta);が問題の原因が、私はそれを置き換えるべきものとされていることと思いますか?

ありがとうございました。

答えて

0

だからあなたの目標は、データベースにデータを保存し、リストビューに同じを追加することで、あなたが書かれているinsertメソッドを呼び出してデータセットを通知呼び出すことができたとき、私それ

+0

いいえ、それはそれをrrecognizeしません後の方法を変更それを呼び出すようにしてください – DaxHR

+0

あなたは何を意味するのですか?あなたが試したことのコードを入れることができますか? – nlogn

+0

私はこのようにしようとしましたString noviPredmet = editTextDodajPredmetImePredmeta.getText()。toString(); adapter_ob.insertData(noviPredmet); cursorAdapter.notifyDataSetChanged();しかし、それは動作しません – DaxHR

関連する問題