結局、スキル不足が否めないのでChatGPTに聞いてみた。
「recyclerViewを使って7列のandroidアプリをつくる例」で問い合わせるとコーディング例を示してくれた。
これを妄信して、単に張り付けるだけではスキルを獲得できないので、一つ一つを吟味して
自分なりのプログラムとした。
作成には、次のステップが必要となる。
1 | 最初に表示するデータの1行分の表示する画面を定義する | |||||||||
1行に7列あるならば、1列ごとの表示方法を決める。全部テキスト(TextView)になる事が多い。 | ||||||||||
2 | 次にRecyclerViewを配置する(Flateする)画面を定義する | |||||||||
3 | 次にAdapterを下記の様に定義する | |||||||||
留意点は、ViewHolderを含むクラス定義とする | ||||||||||
Adapterの役割は、表示データの保持と以下で示すメソッド(overrideする)の実装となる | ||||||||||
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> { | ||||||||||
private List<String> itemList; | ||||||||||
public ListAdapter(List<String> itemList) { | ||||||||||
this.itemList = itemList; | ||||||||||
} | ||||||||||
public class ViewHolder extends RecyclerView.ViewHolder { | ||||||||||
public TextView itemText; | ||||||||||
public ViewHolder(View view) { | ||||||||||
super(view); | ||||||||||
itemText = view.findViewById(R.id.item_text); | ||||||||||
} | ||||||||||
} | ||||||||||
@Override | ||||||||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||||||||||
View itemView = LayoutInflater.from(parent.getContext()) | ||||||||||
.inflate(R.layout.list_item, parent, false); | ||||||||||
return new ViewHolder(itemView); | ||||||||||
} | ||||||||||
@Override | ||||||||||
public void onBindViewHolder(ViewHolder holder, int position) { | ||||||||||
String item = itemList.get(position); | ||||||||||
holder.itemText.setText(item); | ||||||||||
} | ||||||||||
@Override | ||||||||||
public int getItemCount() { | ||||||||||
return itemList.size(); | ||||||||||
} | ||||||||||
} | ||||||||||
4 | 次にRecyclerViewの初期化(GridLayoutManagerで7列を定義) | |||||||||
// RecyclerViewを初期化 | ||||||||||
recyclerView = findViewById(R.id.recycler_view); | ||||||||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 7)); | ||||||||||
5 | 次にAdapterを初期化して、RecyclerViewにアダプタをセットする | |||||||||
// アダプターを初期化 | ||||||||||
for (int i = 0; i < 70; i++) { | ||||||||||
itemList.add("Item " + i); | ||||||||||
} | ||||||||||
adapter = new ListAdapter(itemList); | ||||||||||
// RecyclerViewにアダプターをセット | ||||||||||
recyclerView.setAdapter(adapter); | ||||||||||
} |