Я разрабатываю мобильное приложение, и в этом я использую SQLite для хранения слова, взятого у пользователя. И я даю пользователю возможность обновить слово. И я хочу обновить слово в списке, как только кнопка нажата. Я думаю, что я должен использовать asyn c задачу, чтобы выполнить эту опцию, но я не знаком с ней, поэтому, пожалуйста, помогите.
*
public void showData(){
final Cursor cursor = translateDB.retrieveData();
System.out.println("1");
if (cursor.getCount() == 0){
Toast.makeText(EditPhrase.this, "No data", Toast.LENGTH_LONG).show();
return;
}
ArrayList<String> list = new ArrayList<>();
System.out.println("2");
while (cursor.moveToNext()) {
list.add(cursor.getString(1));
}
/*ListAdapter adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);
listview.setAdapter(adapter);*/
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_single_choice,list);
arrayAdapter.sort(new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
return lhs.compareTo(rhs);
}
});
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listview.setAdapter(arrayAdapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
clicked = adapterView.getItemAtPosition(i).toString();
Toast.makeText(EditPhrase.this,"You selected '"+ clicked+"' " , Toast.LENGTH_LONG).show();
editText.setText("");
}
});
}
public void editWord(){
edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
editText.setText(clicked);
}
});
}
public void saveWord(){
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor selectW = translateDB.getItemID(clicked);
int itemID=-1;
while (selectW.moveToNext()){
itemID = selectW.getInt(0);
System.out.println(itemID);
}
String item = editText.getText().toString();
System.out.println("aaa --- "+item);
if (!item.equals("")){
translateDB.updateData(item, itemID,clicked);
Toast.makeText(EditPhrase.this,"Saved successfully ...",Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(EditPhrase.this,"Save FAILED !!!",Toast.LENGTH_LONG).show();
}
}
});
}
Как показано на рисунке, я хочу обновить представление списка новой обновленной фразой, как только будет нажата кнопка сохранения. Когда я покидаю приложение и запускаю его снова, оно отображается правильно, но я хочу, чтобы оно отображалось при нажатии кнопки.