/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.ray.veader;
import org.ray.veader.R;
import org.ray.veader.util.ColorUtil;
import org.ray.veader.util.Constatnts;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
/**
* This example shows how to use choice mode on a list. This list is in
* CHOICE_MODE_SINGLE mode, which means the items behave like checkboxes.
*/
public class ColorListActivity extends ListActivity {
private final class FBColor {
public int foreground;
public int background;
FBColor(int f, int b) {
foreground = f;
background = b;
}
}
private class MyArrayAdapter extends ArrayAdapter<String> {
private FBColor[] mColorList;
private final String mString;
public MyArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
mString = getResources().getString(R.string.choose_color);
ColorUtil colorUtil = new ColorUtil(context);
int size = colorUtil.getColorSize();
mColorList = new FBColor[size];
for(int i=0;i<size;i++){
int[] color = colorUtil.getColor(i);
mColorList[i] = new FBColor(color[0], color[1]);
}
}
//@override
public int getCount() {
return mColorList.length;
}
//@override
public String getItem(int position) {
return mString;
}
//@override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = super.getView(position, convertView, parent);
}
if (convertView instanceof TextView) {
TextView tv = (TextView) convertView;
tv.setTextColor(mColorList[position].foreground);
tv.setBackgroundColor(mColorList[position].background);
}
return convertView;
}
};
//@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new MyArrayAdapter(this,
android.R.layout.simple_list_item_single_choice));
final ListView listView = getListView();
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
SharedPreferences pref = getSharedPreferences(Constatnts.PREF_TAG,
Context.MODE_PRIVATE);
listView.setItemChecked(pref.getInt(Constatnts.TEXT_COLOR, 0), true);
setResult(Activity.RESULT_CANCELED);
listView.setOnItemClickListener(new OnItemClickListener() {
//@override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
Intent data = new Intent();
data.putExtra("DATA", position);
setResult(Activity.RESULT_OK, data);
SharedPreferences pref = getSharedPreferences(
Constatnts.PREF_TAG, Context.MODE_PRIVATE);
Editor editor = pref.edit();
editor.putInt(Constatnts.TEXT_COLOR, getListView()
.getCheckedItemPosition());
editor.commit();
finish();
}
});
}
}
|