Я создаю нижнюю таблицу, используя BottomSHeetDialogfragment. У меня есть 2 текстовых поля и 1 кнопка, называемая кнопкой «Сохранить», на моей нижней странице после нажатия кнопки «Сохранить» мои данные успешно вставляются в базу данных sqlite, и у меня отображается список моей основной активности, когда кнопка «Сохранить» нажата, когда вставленные данныев базу данных успешно, но мой просмотр списка не обновляет вставленное значение автоматически
теперь, как я могу автоматически обновить мой просмотр списка?
мой класс адаптера ...
public class MainListViewAdapter extends BaseAdapter {
Context context;
ArrayList<String> taskList;
ArrayList<String> detailList;
LayoutInflater layoutInflater;
public MainListViewAdapter(Context context, ArrayList<String> taskList, ArrayList<String> detailList) {
this.context = context;
this.taskList = taskList;
this.detailList = detailList;
}
@Override
public int getCount() {
return taskList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.main_activity_list_view, parent, false);
}
TextView tasktitleTv = convertView.findViewById(R.id.list_item_title_tv_id);
TextView taskDetailsTv = convertView.findViewById(R.id.list_item_detail_tv_id);
final CheckBox checkBox = convertView.findViewById(R.id.list_item_checkbox_id);
convertView.setClickable(true);
convertView.setFocusable(true);
convertView.setBackgroundResource(android.R.drawable.menuitem_background);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, ""+position, Toast.LENGTH_SHORT).show();
}
});
tasktitleTv.setText(taskList.get(position));
taskDetailsTv.setText(detailList.get(position));
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Toast.makeText(context, "Checked", Toast.LENGTH_SHORT).show();
taskList.remove(position);
detailList.remove(position);
MainListViewAdapter.this.notifyDataSetChanged();
} else {
return;
}
if (isChecked) {
buttonView.toggle();
}
}
});
return convertView;
}
}
имой класс mainActivity.java -
public class MainActivity extends AppCompatActivity {
private TextView taskHeaderTv;
public ListView mainListview;
private MainListViewAdapter mainListViewAdapter;
private FloatingActionButton floatingActionButton;
private BottomAppBar bottomAppBar;
private DataBaseHelper dataBaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
taskHeaderTv = findViewById(R.id.task_header_tv_id);
floatingActionButton = findViewById(R.id.floating_action_button);
bottomAppBar = findViewById(R.id.bottomAppBar);
fabClick();
bottomAppBarClick();
// set list view content
dataBaseHelper = new DataBaseHelper(this);
ArrayList<String> taskList = dataBaseHelper.getAllTitle();
ArrayList<String> detailList = dataBaseHelper.getALlDetails();
mainListview = findViewById(R.id.main_activity_listview_id);
mainListViewAdapter = new MainListViewAdapter(this, taskList, detailList);
mainListview.setAdapter(mainListViewAdapter);
mainListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, position, Toast.LENGTH_SHORT).show();
}
});
mainListViewAdapter.notifyDataSetChanged();
}
}
, а мой класс фрагмента -
public class ListItemInputFragment extends BottomSheetDialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogStyle);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_list_item_input, container, false);
final EditText newTaskEt, detailsEt;
TextView savBtn;
newTaskEt = view.findViewById(R.id.new_task_et_id);
detailsEt = view.findViewById(R.id.details_et_id);
savBtn = view.findViewById(R.id.save_btn_id);
savBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String title = newTaskEt.getText().toString();
String detail = detailsEt.getText().toString();
DataBaseHelper dataBaseHelper = new DataBaseHelper(getContext());
long row = dataBaseHelper.insertData(title, detail);
if (row == -1) {
Toast.makeText(getActivity().getBaseContext(), "Data not inserted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity().getBaseContext(), "Data Inserted", Toast.LENGTH_SHORT).show();
}
dismiss();
}
});
return view;
}
}