Для достижения CRUD
операций хорошо использовать пользовательские макеты.
Например, LinearLayout
, макет которого по умолчанию уже определен. Теперь в соответствии с требованиями / параметрами времени выполнения вы можете добавлять / редактировать / удалять все это. За что логика может быть полностью вашей. Это удобнее, чем создавать статический вид и манипулировать им.
Позвольте мне показать вам подготовку и добавление нестандартных макетов. Я привел пример, где макет landing_hori_view
имеет EditText
и Button
public class LandingHorizontalView extends LinearLayout implements View.OnClickListener{
public LandingHorizontalView(Context context){
super(context);
initialize();
}
public LandingHorizontalView(Context context, ModelClassObject modelObject,ButtonClicked listener){
super(context);
mTypeContent = modelObject;//If you want to pass some params for population
mListener = listener;
initialize();
}
private void initialize(){
View view = LayoutInflater.from(getContext()).inflate(R.layout.landing_hori_view, this, true);
EditText edtOne =findViewById(R.id.txt_price_list);
Button button= findViewById(R.id.btn_place_order);
button.setTag(count);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v instanceof Button){
int count = (int) v.getTag();
mListener.onButtonClicked(count);
}
}
public interface ButtonClicked{
public void onButtonClicked(int index);
}
}
В родительском упражнении реализуйте интерфейс (здесь ButtonClicked
) и обрабатывайте события щелчка / манипуляции с пользовательским интерфейсом и т. Д.
@Override
public void onButtonClicked(int index) {
}
Теперь перейдем к тому, как добавить их в родительский макет, создать ScrollView
и включить один LinearLayout
, к которому будет добавлен LandinghorizontalView
.
Ниже показано содержание моего родительского занятия
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/white"
app:layout_constraintTop_toBottomOf="@id/guideline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/landingScrollLinearView"
>
</LinearLayout>
Теперь для добавления этого vew можно сделать следующее.
LandingHorizontalView horizontalView=new LandingHorizontalView(getActivity(),modelObject,this);
mScrollLinearView.addView(horizontalView);
Теперь, согласно вашему комментарию, создайте несколько LandingHorizontalView
и добавьте
к корню. Теперь, согласно вашей логике / взаимодействию с пользователем, продолжайте
изменение mScrollLinearView