2017-05-19 6 views
0

Ich habe zwei Aktivitäten. In der ersten Aktivität habe ich eine Listenansicht und in der zweiten Aktivität habe ich zwei editText und ich speichere die Daten in sqlite durch edittext und zeige sie in einer Listenansicht. Ich habe diese Dinge jetzt gemacht, wenn ich auf einen Listenansichtspunkt klicke, mit dem eine Aktivität geöffnet wird EditText, die so vorherigen Daten enthalten ich es bearbeiten und aktualisieren sie die sQLiteWie sqlite auf Klick auf Listenansicht Artikel aktualisieren

Main.java

public class MainActivity extends AppCompatActivity { 
List<FileName> filenames; 
DBhelper dBhelper; 
SQLiteDatabase sqLiteDatabase; 
ListViewAdapter listViewAdapter; 
ListView listView; 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.main_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_add: 
      Intent intent = new Intent(MainActivity.this, Note.class); 
      startActivity(intent); 
      return true; 
     case R.id.action_credits: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    listView = (ListView)findViewById(R.id.lv_filename); 
    dBhelper = new DBhelper(getApplicationContext()); 
    sqLiteDatabase =dBhelper.getReadableDatabase(); 
    filenames = dBhelper.getItemFromDatabase(sqLiteDatabase); 
    if (filenames != null) { 
     listViewAdapter = new ListViewAdapter(getApplicationContext(), R.layout.listview_item, filenames); 
     listView.setAdapter(listViewAdapter); 
    } 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     } 
    }); 
} 

} 

Note.java

public class Note extends AppCompatActivity { 
EditText editText; 
EditText editText2; 
DBhelper dBhelper; 
SQLiteDatabase sqLiteDatabase; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.note); 
    editText = (EditText)findViewById(R.id.et_title); 
    editText2 = (EditText)findViewById(R.id.et_note); 


} 


public void SaveNote() 
{ 
    dBhelper = new DBhelper(this); 
    sqLiteDatabase= dBhelper.getWritableDatabase(); 
    dBhelper.store(editText.getText().toString(),editText2.getText().toString(),sqLiteDatabase); 

} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu_note, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.action_save: 
      SaveNote(); 
      Intent intent = new Intent(Note.this, MainActivity.class); 
      startActivity(intent); 
     default: 
      return super.onOptionsItemSelected(item); 
    } 

} 
} 

DBhelper.java

public class DBhelper extends SQLiteOpenHelper { 
private static final int DATABASE_VERSION = 1; 
public static final String DATABASE_NAME = "MEMBERSDATA.DB"; 

DBhelper(Context context) 
{ 
    super(context,DATABASE_NAME,null,DATABASE_VERSION); 
} 



@Override 
public void onCreate(SQLiteDatabase sqLiteDatabase) { 
    sqLiteDatabase.execSQL("CREATE TABLE "+Coloumn.NewInfo.TABLE_NAME+"("+ Coloumn.NewInfo.TITLE+" TEXT,"+ Coloumn.NewInfo.NOTE+" TEXT);"); 

} 
public void store(String Title,String Note, SQLiteDatabase sqLiteDatabase2) { 
    sqLiteDatabase2.execSQL("insert into " + Coloumn.NewInfo.TABLE_NAME + " (" + Coloumn.NewInfo.TITLE + ", " + Coloumn.NewInfo.NOTE+ ") values(?,?);", new String[]{Title,Note}); 

} 
public List<FileName> getItemFromDatabase(SQLiteDatabase sqLiteDatabase) { 
    List<FileName> result = new ArrayList<>(); 
    Cursor c = sqLiteDatabase.rawQuery("SELECT * FROM "+Coloumn.NewInfo.TABLE_NAME,null); 
    while (c.moveToNext()) { 
     result.add(
       new FileName(
         c.getString(c.getColumnIndex("Name")), 
         c.getString(c.getColumnIndex("Note")) 
       ) 
     ); 
    } 
    c.close(); 
    return result; 
} 





@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 
} 
+0

Warum möchten Sie neue Aktivität für das erstellen? Erstellen Sie einfach einen Dialog mit zwei Edit-Texten und zeigen Sie dem Benutzer diesen Dialog, indem Sie die Daten des Items an den Dialg bearbeiten und die Änderungen an db –

+0

aktualisieren. Ich brauche keinen Dialog, da ich eine einfache Notizblock-App erstelle –

+0

Nun, die Idee sollte es sein Übergeben Sie die ID der angeklickten Notiz mit Ihrem Absichtsbündel. Auf dem 'onCreate (Bundle bun)' sollten Sie die Daten aus der Datenbank holen und auf 'EditText' -' EditText.setText (String str) 'setzen. Nachdem Sie mit der Bearbeitung fertig sind, müssen Sie nur noch update mit der neuen Zeichenfolge aufrufen. –

Antwort

0

In Ihrem OnitemClickListener für das Element Daten aus Ihrer Datenbank erhalten und sie zu Ihrer zweiten Aktivität senden und diese Werte Text wie die

String name = filenames.get(positiom).getName(); //get these values based on your FileName class 
    String note = filenames.get(positiom).getNote();//get these values based on your FileName class 
    Intent intent = new Intent(MainActivity.this,Note.class); 
    intent.putExtra("Name",name); 
    intent.putExtra("Note",note); 
    startActivity(intent); 

und in Ihrer Hinweis Aktivität oncreate Methode setzt diese Werte bearbeiten Text bearbeiten

String name = getIntent().getStringExtra("Name"); 
    String note = getIntent().getStringExtra("Note"); 
    editText1.setText(name); 
    editText2.setText(note); 
+0

können Sie mir mit dem Update helfen und Dinge löschen? –

+0

Sie können eine Methode in Ihrer DBhelper-Klasse machen, um einen bestimmten Datensatz in Ihrer Datenbanktabelle zu aktualisieren –

+0

danke :) @Sandeep dhiman –

Verwandte Themen