Open ryanmunene79 opened 8 years ago
Hi @ryanmunene79 . For this case, you can use the combination of ArrayAdapter and DialogFragment. List down the first TextView using the array adapter. To edit the particular item in the list, you can add item.onClickListener and open a Dialog to show the editText with a prefilled setText to the item. Once you change the editText, the changes can be maintained at the db level.
Because when you define your custom layout you will add an editText in your case, which may have only one ID and if you target this editText, the changes will always go for the first item in the list but not the corresponding TextView.
1 .Create a Custom Adapter Class:
Create a new Java/Kotlin class that extends ArrayAdapter or BaseAdapter
public class CustomAdapter extends ArrayAdapter
getView Method: public View getView(int position, View convertView, ViewGroup parent) { // Inflate your layout for each item View view = LayoutInflater.from(getContext()).inflate(R.layout.item_layout, parent, false);
// Get references to your TextView and EditText TextView textView = view.findViewById(R.id.text_view); EditText editText = view.findViewById(R.id.edit_text);
// Get the data for this position YourDataType data = getItem(position);
// Set data to the TextView textView.setText(data.getText()); // Assuming 'getText()' is a method in YourDataType
// Set data to the EditText editText.setText(data.getEditTextValue()); // Assuming 'getEditTextValue()' is a method in YourDataType
return view; }
how would you use the custom adapter if you are fetching data from the db for the first textview and instead of the second textview,you use an edittext which should set data to the db