アイテムが取り込まれたGriViewがあり、グリッドビューのアイテムをクリックすると、バックグラウンドリソースをresフォルダーにある画像に変更します。私の問題は、スクロールして選択した項目に戻ると、バックグラウンド リソースがなくなることです。代わりに、グリッドビューの他のアイテムが背景を取得します。
私の onCreate メソッドには、GridView を設定する次のコードがあります。
編集私が得た提案に基づいて、カスタムアダプターを作成し、グリッドビューにデータを入力しました。私が今抱えている問題は、私の gridView 要素が現在取り込まれていることです。アダプターをセットアップするときに、ブール配列とデータ配列を渡します。データ配列には、GridView を設定するために使用する必要があるすべてのデータが含まれており、ブール配列は、グリッド項目が選択されているかどうかを確認するためのものです。
編集: 選択された GridView 要素はスクロール後も強調表示されるようになりましたが、選択されていない他の要素が強調表示されているように見えます。
アダプタークラスは次のとおりです。
public class HoursAdapter extends BaseAdapter {
private Context mContext;
private boolean isSelected[];
private String hours[];
public HoursAdapter(Context c, boolean selected[], String hours[]){
this.isSelected = selected;
this.mContext = c;
this.hours = hours;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return hours.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if(convertView==null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.hourview_item, null);
holder = new ViewHolder();
holder.hours =(TextView) convertView.findViewById(R.id.hours_text);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}
if(isSelected[arg0-1])
holder.hours.setBackgroundResource(R.drawable.item_background_focused);
holder.hours.setText(hours[arg0-1]);
return convertView;
}
static class ViewHolder{
TextView hours;
}
}
そして、これはアダプターをセットアップするための私のコードです:
HoursAdapter adapter = new HoursAdapter(this,isSelected,data);
hoursView.setAdapter(adapter);
hoursView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
v.setBackgroundResource(R.drawable.item_background_focused);
}
});
どんな助けでも大歓迎です!