グリッドレイアウトのアンドロイドRecyclerViewケース

1、最初activity_grid.xmlとactivity_grid_item.xmlを作成 

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< androidx.constraintlayout.widget.ConstraintLayout のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" 
    のxmlns:アプリ= "HTTP ://schemas.android.com/apk/res-auto」
    のxmlns:ツール= "http://schemas.android.com/tools" 
    のandroid:layout_width = "match_parent" 
    のandroid:layout_height = "match_parent" 
    ツール:コンテキスト= ".GridActivity" > 

    < androidx.recyclerview.widget.RecyclerView
         アンドロイド:ID = "@ + ID / RV2" 
        アンドロイド:layout_width =」= "match_parent" 
        ツール:layout_editor_absoluteX = "103dp" 
        ツール:layout_editor_absoluteY = "44dp"  /> 
</ androidx.constraintlayout.widget.ConstraintLayout >
<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< androidx.constraintlayout.widget.ConstraintLayout のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" 
    のxmlns:アプリ= "HTTP :「//schemas.android.com/apk/res-auto 
    :ツールのxmlns = "http://schemas.android.com/tools" 
    のandroid:layout_width = "wrap_content" 
    のandroid:layout_height = "wrap_content" 
    ツール:コンテキスト= ".GridItemActivity" > 

    < のTextViewの
         アンドロイド:ID = "@ + ID / textView3" 
        アンドロイド:layout_width = "50dp"
        アンドロイド:テキスト= "@文字列/ textview2" 
        アプリ:layout_constraintBottom_toBottomOf = "親" 
        アプリ:layout_constraintEnd_toEndOf = "親" 
        アプリ:layout_constraintStart_toStartOf = "親" 
        アプリ:layout_constraintTop_toTopOf = "親"  /> 
</ androidx.constraintlayout.widget.ConstraintLayout >

2、アダプタを作成

パッケージcom.example.myapplication。

輸入android.content.Context;
輸入android.view.LayoutInflater;
輸入android.view.View。
輸入android.view.ViewGroup;
輸入android.widget.TextView。
輸入android.widget.Toast; 

輸入androidx.annotation.NonNull;
輸入androidx.recyclerview.widget.RecyclerView。

パブリック クラス GridAdapterは拡張 RecyclerView.Adapter <GridAdapter.GridViewHolder> {
     プライベートコンテキストコンテキストを。
    公共GridAdapter(コンテキスト・コンテキスト){
         この.context = 文脈。
    } 
    @NonNull 
    @Override 
    公共 GridAdapter.GridViewHolder onCreateViewHolder(@NonNullのViewGroup親、INT ビュータイプ){
         戻り 新しい GridViewHolder(LayoutInflater.from(コンテキスト).inflate(R.layout.activity_grid_item、親、偽の))。
    } 

    @Override 
    公共 ボイド(@NonNull GridAdapter.GridViewHolderホルダー、onBindViewHolder 最終 INT 位置){ 
        holder.tv.setText( "Hello World"の)。

        holder.tv.setOnClickListener(新しいView.OnClickListener(){
            @Override 
            公共 のボイドのonClick(ビュービュー){ 
                Toast.makeText(コンテキスト、 + "...クリック" の位置を、Toast.LENGTH_SHORT).SHOW(); 
            } 
        })。
    } 

    @Override 
    公共 のint getItemCount(){
         返す 30 
    } 

    クラス GridViewHolderは延びRecyclerView.ViewHolder { 

        プライベートのTextViewテレビ;
        公共GridViewHolder(@NonNullビューitemView){
             スーパー(itemView)。
            TV = itemView.findViewById(R.id.textView3)。
        } 
    } 
}

3、GridActivity.java

パッケージcom.example.myapplication。

輸入androidx.appcompat.app.AppCompatActivity。
輸入androidx.recyclerview.widget.GridLayoutManager。
輸入androidx.recyclerview.widget.RecyclerView。

輸入android.os.Bundle; 

パブリック クラス GridActivityは拡張AppCompatActivity { 

    プライベートRecyclerViewのRVを、
    @Override 
    保護された ボイドのonCreate(バンドルsavedInstanceState){
         スーパー.onCreate(savedInstanceState)。
        setContentView(R.layout.activity_grid)。

        RV =  findViewById(R.id.rv2)。

        rv.setLayoutManager(GridLayoutManager(GridActivity。、3 ))。

        rv.setAdapter(新しい GridAdapter(GridActivity。この)); 
    } 
}

4の効果:

 

おすすめ

転載: www.cnblogs.com/zoro-zero/p/11407867.html