私はActivityでBaseAdapterクラスを拡張するカスタムアダプタでGridviewを使用しています。GridViewアイテムの色がAndroid上でOnScrollを繰り返すか?
すべてがうまくいきました。値を設定すると、結果が得られます。しかし、gridviewの特定のセルをクリックして、そのセルのボタンの色を変更したいときに問題が発生します.OnClickListnerでは、このようなボタンの色を変更しました:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(BookingActivity.this, "Hi click working" + position, Toast.LENGTH_SHORT).show();
try {
Button button = (Button) view.findViewById(R.id.button3);
button.setBackgroundColor(Color.GREEN);
} catch (Exception e) {
e.printStackTrace();
}
}
});
ボタンの色は変更されていますが、グリッドビューをスクロールすると別のセルで色が繰り返されます。私はこの色がさらに繰り返されることを望んでいません。 多分セルは再利用されますが、このタイプの繰り返しを回避するにはどうすればよいでしょうか。私は、セルの特定のセルの色をクリックして変更しますが繰り返されていないときに私は、セルの複数選択をしたい
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white">
<Button
android:layout_width="150dp"
android:layout_height="100dp"
android:text="New Button"
android:id="@+id/button3"
android:clickable="false"
android:focusable="false"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
:ここ
は、これは私のgrid_item.xmlファイルである私のアダプタクラス
public class CustomGrid extends BaseAdapter {
private Context mContext;
private final ArrayList<String> web;
public CustomGrid(Context c,ArrayList<String> web) {
mContext = c;
this.web = web;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return web.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return web.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View grid = convertView;
CoachHolder holder = null;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (grid == null) {
grid = inflater.inflate(R.layout.grid_single,parent,false);
holder = new CoachHolder(grid);
grid.setTag(holder);
} else {
holder =(CoachHolder)grid.getTag();
}
holder.button.setText(web.get(position));
return grid;
}
static class CoachHolder {
Button button;
//TextView descriptions;
public CoachHolder(View v) {
button = (Button)v.findViewById(R.id.button3);
}
}
}
です。 ポジションを使ってセルの特定のボタンを取得できないと思います。
私はこの問題から抜け出すために手伝ってください、それはすでにあまりにも多くの時間がかかりました。あなたの助けを事前に感謝
で