0
同じ画像をビューに追加しようとしています。私は20分ごとに離れるタイマーを持っており、ユーザーが1つのタイマーを完了したことを示す画像を追加したい。新しい画像をビューに追加する
researchの後に、私はArrayAdapterを使用する必要があることがわかりました。問題は、そのコードが何をしているのか理解できないことです。誰かが私にそれを説明することはできますか?私がこれまでに発見した何
は次のとおりです。
protected void onCreate(){
//I need to create a gridveiw (it could be any type of view)
gridLayout = (GridView) findViewById(R.id.gridLayout);//created in Studio GUI
//Create an image
ImageView myImage = new ImageView(this);
myImage.setImageResource(R.mipmap.ic_launcher);
//Create an image list
private List<ImageView> imgs = new ArrayList<ImageView>();
//add images to list (this will need to be added to the timer later)
for (i = 0; i < numberOfTimersHit; i++){
imgs.add(myImage);
}
//add the list to an ArrayAdapter
//This is where I need help
//add the ArrayAdapter to the grid
gridLayout.setAdapter(imageViewArrayAdapter);
任意の助けをいただければ幸いです。私が逃したものは自由に修正してください。これは動作するかもしれ
//add the list to an ArrayAdapter
//This is where I need help
ImageViewArrayAdapter imageViewArrayAdapter = new ImageViewArrayAdapter(imgs);
:その後、
public class ImageViewArrayAdapter extends BaseAdapter {
List<ImageView> images;
public ImageViewArrayAdapter(List<ImageView> images) {
this.images = images;
}
@Override
public int getCount() {
return images != null ? images.size() : 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return images.get(position);
}
}
あなたのコードを使用している:
あなた自身のコードについての手がかりがなく、Android 101(またはJava?)にあなたを送ってもらえたら、私はあなたの質問に答えるべきではないでしょう。しかし、とにかくあなたに方向感を与えるために: – kalabalik
コードは不完全です(最も重要なのは 'imageViewArrayAdapter'とはどのようにして作成しましたか?)、間違ったアプローチです。アイテムの数が変更されるたびに、同じアイテムのリストを作成してアダプタに設定しないでください。 'GridLayout'で同じイメージをn回繰り返すには、アダプタ内部の変数(' RecyclerView.Adapter ')を増やしてください。 'getItemCount()'ではその変数を返し、 'onBindViewHolder(ViewHolder holder、int position)'では 'position'を使わずに' ImageView'で同じ 'ViewHolder'を返すだけです。 –
kalabalik
もう少し研究を重ねると、 'ArrayAdapters'について何もないように見えます。私は新しいプロジェクトを開始しているので、続ける前に彼らと仕事をして理解することができます。 – Funlamb