Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You can make a customview like this...</p> <pre><code>public class RadioGridView extends LinearLayout { private int mClickedPosition = -1; private Context mContext; private int[] mItems; private ImageView[] iv_items; public RadioGridView(Context context, int[] items) { super(context); this.mContext = context; this.mItems = items; init(); } private void init() { if (mItems != null) { iv_items = new ImageView[mItems.length]; GridView gv = new GridView(mContext); addView(gv); gv.setBackgroundColor(0xffffffff); gv.setColumnWidth(50); gv.setNumColumns(GridView.AUTO_FIT); gv.setVerticalSpacing(10); gv.setHorizontalSpacing(10); gv.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); gv.setGravity(Gravity.CENTER); final RadioGridViewAdapter adapter = new RadioGridViewAdapter(); gv.setAdapter(adapter); gv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) { if (mClickedPosition &gt;= 0) { iv_items[mClickedPosition].setBackgroundColor(Color.WHITE); } iv_items[position].setBackgroundColor(Color.RED); mClickedPosition = position; if (mOnGridItemClickListener != null) { mOnGridItemClickListener.onItemClick(position); } adapter.notifyDataSetChanged(); } }); } } public int getSelectedPosition() { return mClickedPosition; } /********************************************************* * Listener Interface ********************************************************/ public interface OnGridItemClickListener { public void onItemClick(int position); } public OnGridItemClickListener mOnGridItemClickListener = null; public void setOnGridItemClickListener(OnGridItemClickListener l) { mOnGridItemClickListener = l; } /********************************************************* * RadioGidViewAdapter *********************************************************/ class RadioGridViewAdapter extends BaseAdapter { @Override public int getCount() { return mItems.length; } @Override public Object getItem(int position) { return mItems[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = new ImageView(mContext); } iv_items[position] = (ImageView) convertView; iv_items[position].setImageResource(mItems[position]); return convertView; } } } </code></pre> <p>And then, use it in the activity like this.</p> <pre><code>public class RadioGridActivity extends Activity { private int[] mItems = { R.drawable.gv_img_01, R.drawable.gv_img_02, R.drawable.gv_img_03, R.drawable.gv_img_04 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final RadioGridView rgv = new RadioGridView(this, mItems); setContentView(rgv); rgv.setOnGridItemClickListener(new OnGridItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(RadioGridActivity.this, "pos=" + position, 0).show(); } }); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload