ListView選中一行後高亮顯示

public class ListViewDemo extends Activity {
    private ListView listview;
    private int cur_pos = 0;// 當前顯示的一行
        
    private String[] items_text = { "選項一", "選項二", "選項三", "選項四", "選項五" };
    private int[] items_img = { R.drawable.ic_launcher, R.drawable.ic_launcher,
            R.drawable.ic_launcher, R.drawable.ic_launcher,
            R.drawable.ic_launcher };
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view_demo);
        listview = (ListView) findViewById(R.id.listview);
        
        final MyAdapter adapter = new MyAdapter(this);
        listview.setAdapter(adapter);
        
        // ***********一定要設置這個屬性,否則ListView不會刷新********
        listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        //*******************************************************
        listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                cur_pos = position;// 更新當前行
            }
        });
    }
        
    private class MyAdapter extends BaseAdapter {
        private LayoutInflater inflater;
        
        public MyAdapter(Context context) {
            inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
        
        @Override
        public int getCount() {
            return items_text.length;
        }
        
        @Override
        public Object getItem(int position) {
            return items_text[position];
        }
        
        @Override
        public long getItemId(int position) {
            return position;
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Log.e("TEST", "refresh once");
            convertView = inflater.inflate(R.layout.list_child, null, false);
            ImageView img = (ImageView) convertView
                    .findViewById(R.id.list_child_img);// 用於顯示圖片
            TextView tv = (TextView) convertView
                    .findViewById(R.id.list_child_text);// 顯示文字
            tv.setText(items_text[position]);
            img.setImageResource(items_img[position]);
            if (position == cur_pos) {// 如果當前的行就是ListView中選中的一行,就更改顯示樣式
                convertView.setBackgroundColor(Color.LTGRAY);// 更改整行的背景色
                tv.setTextColor(Color.RED);// 更改字體顏色
            }
            return convertView;
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章