Создайте динамический c ListView во фрагменте с помощью специального адаптера - PullRequest
0 голосов
/ 08 января 2020

Я ладья ie. И так. Я хочу сделать так, чтобы в Activity было необходимо ввести строку, а затем список был создан уже во Fragment ... item_list. xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:background="@color/white" android:padding="16dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/irr_sport"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_centerVertical="true"
        android:layout_marginEnd="16dp"/>
    <TextView
        android:id="@+id/irr_reg_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/irr_sport"
        style="@style/Text.Black.PreLarge"/>
</RelativeLayout>

Мой настраиваемый адаптер MySimpleArrayAdapter. java

public class MySimpleArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;

    public MySimpleArrayAdapter(Context context, String[] values) {
        super(context, R.layout.item_ride_row, values);
        this.context = context;
        this.values = values;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View root = inflater.inflate(R.layout.item_ride_row, parent, false);
        ImageView icon = (ImageView) root.findViewById(R.id.irr_sport);
        TextView number = (TextView) root.findViewById(R.id.irr_reg_number);
        number.setText(values[position]);
        // Change icons for type1 and type2
        String s = values[position];
        if (TextUtils.isEmpty(s) || s.length() == 3) {
            icon.setImageResource(R.drawable.ic_type1);
        } else {
            icon.setImageResource(R.drawable.ic_type2);
        }

        return root;
    }
}

Мой фрагмент_инструментов. xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <include layout="@layout/view_toolbar1" />

        <ListView
            android:layout_width="match_parent"
            android:id="@+id/list"
            android:layout_height="match_parent"/>

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

И, наконец, что написать во фрагменте, я не знаю ... Да, я понимаю, что информации много об этом в inte rnet но. На Inte rnet у всех уже есть созданный массив, или EditText, кнопка и ListView находятся в одном фрагменте. Я не нашел ни одного сайта для динамического заполнения списка во фрагменте из действия. Я думаю, что бросать код активности не стоит. Ведь там просто EditText и Button

...