Comment utiliser Android Voir Reliure avec RecyclerView

MDP:

Ce n'est pas la liaison de données, c'est obligatoire Voir qui est nouveau pour Android 3.6 Studio de Canary 11+ décrit ici .

Pour l'utilisation à l'intérieur d'une activité, il est clair, vous utilisez juste comme ceci:

Disons que nous avons une mise en page du nom activity_main.xml

Ensuite, dans le code que nous pouvons l'utiliser comme ceci:

public class MainActivity extends Activity{

    ActivityMainBinding binding; //Name of the layout in camel case + "Binding"

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());
    }
}

Cependant, on ne sait pas comment utiliser Voir liaison avec RecyclerView?

Edit: S'il vous plaît expliquer en Java.

MDP:

Disons que nous avons un à l' intérieur de RecyclerView activity_main.xmlet son id est"@+id/rv_test"

A l'intérieur l'activité que nous pouvons l'utiliser comme ceci:

public class MainActivity extends Activity{

    ActivityMainBinding binding; //Name of the layout in camel case + "Binding"

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
        binding.rvTest.setLayoutManager(layoutManager);
    }
}

Soit le nom de la mise en page des articles RecyclerView test_list_item.xml

Ensuite, nous pouvons mettre en œuvre notre adaptateur à l'intérieur de l'activité comme ceci:

public class MainActivity extends Activity{

    ActivityMainBinding binding; //Name of the layout in camel case + "Binding"

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
        binding.rvTest.setLayoutManager(layoutManager);

        List<String> items = Arrays.asList("item", "item", "item");

        binding.rvTest.setAdapter(new MyAdapter(items));
    }

    private class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{

        private List<String> items;

        private class MyViewHolder extends RecyclerView.ViewHolder{

            TestListItemBinding binding;//Name of the test_list_item.xml in camel case + "Binding"

            public MyViewHolder(TestListItemBinding b){
                super(b.getRoot());
                binding = b;
            }
        }

        public MyAdapter(List<String> items){
            this.items = items;
        }

        @NonNull
        @Override
        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){
            return new MyViewHolder(TestListItemBinding.inflate(getLayoutInflater()));
        }

        @Override
        public void onBindViewHolder(MyViewHolder holder, int position){
            String text = String.format(Locale.ENGLISH, "%s %d", items.get(position), position);

            //An example of how to use the bindings
            holder.binding.tvTest.setText(text);
        }

        @Override
        public int getItemCount(){
            return items.size();
        }
    }

}

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=478726&siteId=1
conseillé
Classement