我有两项活动。在第一个活动中,我有一个listview,在第二个活动中,我有两个editText,我通过edittext在sqlite中保存数据并在listview中显示我现在已经完成了这些事情,当我点击listview项目时,一个活动将打开edittext包含以前的数据,所以我可以编辑它并更新sqlite
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 :(得分:0)
在您的OnitemClickListener中从您的数据库中获取该项目的数据并将其发送到您的第二个活动,并将这些值设置为编辑文本,如此
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);
并在您的Note Activity oncreate方法中设置这些值以编辑文本
String name = getIntent().getStringExtra("Name");
String note = getIntent().getStringExtra("Note");
editText1.setText(name);
editText2.setText(note);