ここSOにはリストビューを更新するための多くの提案があることを知っています。それらを試しましたが、何も機能しません。手伝ってくれませんか?何かを逃したかどうかはわかりません。これが私のコードです:
simpleAdapterConsumerList= new ConsumerList(RegistrationActivity.this, arraylistRegisteredConsumer, R.layout.registeredconsumerlistattributecell, Constants.REGISTERED_ATTRIBUTE_KEYS, Constants.REGISTERED_ATTRIBUTES_VIEWS, false);
lv_ConsumersList.setAdapter(simpleAdapterConsumerList);
registeredConsumerCount = lv_ConsumersList.getCount();
送信ボタンをクリックすると、ページを離れることなくリスビューを自動的に更新したいと考えています。リストビューをクリックすると、ユーザーが選択したアイテムを削除するかどうかを尋ねる警告ダイアログが表示されます。ユーザーが [OK] ボタンをクリックすると、データベースで既に削除されていますが、リストビューは更新されません。更新されたリストビューを表示するには、ページを離れる必要があります。以下にコードを入力しようとしましたが、何も機能しません。()
simpleAdapterConsumerList.notifyDataSetChanged();
と
((BaseAdapter) lv_ConsumersList.getAdapter()).notifyDataSetChanged();
データベースに新しいデータを追加する私のコードをここに示します
btn_Register.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Emp = txt_Emp.getText().toString();
Lastname = txt_Lname.getText().toString();
Firstname = txt_Fname.getText().toString();
Middlename = txt_Mname.getText().toString();
Cp = txt_Cp.getText().toString();
Email = txt_Email.getText().toString();
fullName = Lastname +" "+ Firstname +" "+Middlename;
careFriend = sharedPreferences.getString(Constants.SHARED_PREFERENCES_CAREFRIEND, "");
companyName = sharedPreferences.getString(Constants.SHARED_PREFERENCES_COMPANY_CARE_FRIEND, "");
consumercompanycode = sharedPreferences.getString(Constants.SHARED_PREFERENCES_COMPANYCODE_CARE_FRIEND, "");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm");
emailmark = "Not send";
consumerId = sharedPreferences.getInt(Constants.SHARED_PREFERENCES_CONSUMER_ID, 1);
consumerId = consumerId + 1;
if (!Lastname.equals(""))
{
....
{
String currentDateandTime = sdf.format(new Date());
databaseAdapter.SaveConsumerDetails(new Constructor(Emp, Lastname, Firstname, Middlename, Cp, Email, fullName, careFriend, companyName, emailmark, currentDateandTime, consumerId, consumercompanycode));
sharedPreferencesEditor.putInt(Constants.SHARED_PREFERENCES_CONSUMER_ID, consumerId);
sharedPreferencesEditor.commit();
simpleAdapterConsumerList.notifyDataSetChanged();
//((BaseAdapter) lv_ConsumersList.getAdapter()).notifyDataSetChanged();
//registeredConsumerCount = lv_ConsumersList.getCount();
Toast.makeText(RegistrationActivity.this, "Registered successfully. " + currentDateandTime, Toast.LENGTH_LONG).show(); simpleAdapterConsumerList.notifyDataSetChanged();
Clear();
}else{
....
}
私の削除ボタンで。ここに私のコードがあります
public void onClick(DialogInterface dialog, int id)
{
databaseAdapter.deleteSelectedItem(ID);
Toast.makeText(RegistrationActivity.this, "Delete " + ID, Toast.LENGTH_LONG).show();
simpleAdapterConsumerList.notifyDataSetChanged();
}
....
final Cursor cursorRegisteredConsumer = databaseAdapter.getCursorRegisteredConsumer();
....
//on my databaseAdapter here is my code
public Cursor getCursorRegisteredConsumer(){
Cursor c = dbSqlite.query(Constants.DATABASE_TABLE_CONSUMER, new String[] { Constants.DATABASE_COLUMN_ID, Constants.CONSUMER_EMPNO, Constants.CONSUMER_FIRSTNAME, Constants.CONSUMER_LASTNAME, Constants.CONSUMER_MIDDLEINITIAL, Constants.CONSUMER_CELLPHONENO, Constants.CONSUMER_EMAIL, Constants.CONSUMER_FULLNAME, Constants.CONSUMER_CAREFRIEND, Constants.CONSUMER_COMPANY, Constants.CONSUMER_REGISTRATIONDATE, Constants.CONSUMER_EMAILMARK,Constants.CONSUMER_ID,Constants.CONSUMER_COMPANYCODE}, null , null, null, null, Constants.DATABASE_COLUMN_ID + " ASC");
//c.setNotificationUri(getContext().getContentResolver(), uri);
if (c != null) {
c.moveToFirst();
}
return c;
}