天天看點

android怎麼更改文本顔色,android更改檔案中的文本顔色

我有一個微調器,在某些情況下,某些選項不可選擇.我有代碼使項目不可選擇,但它不灰色文本顔色,以指定該項目是不可選擇的.如何更改應該禁用的微調框中的項目的文本顔色?這是代碼:

public class main extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

PatchedSpinner pSpinner = (PatchedSpinner) findViewById(R.id.spinner2);

ArrayList testarray = new ArrayList();

testarray.add("item0");

testarray.add("item1");

testarray.add("item2");

testarray.add("item3");

ArrayAdapter spinnerAdapter = new ArrayAdapter(this,

android.R.layout.simple_spinner_dropdown_item, testarray) {

@Override

public boolean isEnabled(int position) {

return position != 1;

}

public boolean areAllItemsEnabled() {

return false;

}

};

pSpinner.setAdapter(spinnerAdapter);

}

以下是用于建立可以禁用微調框中某些項目的微調框的自定義微調框類.

public class PatchedSpinner extends Spinner {

public PatchedSpinner(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

public PatchedSpinner(Context context) {

super(context);

}

public PatchedSpinner(Context context, AttributeSet attrs) {

super(context, attrs);

}

@Override

public boolean performClick() {

// this line removed, we do not want to delegate the click to the spinner.

// boolean handled = super.performClick();

Context context = getContext();

final DropDownAdapter adapter = new DropDownAdapter(getAdapter());

CharSequence mPrompt = getPrompt();

AlertDialog.Builder builder = new AlertDialog.Builder(context);

if (mPrompt != null) {

builder.setTitle(mPrompt);

}

builder.setSingleChoiceItems(adapter, getSelectedItemPosition(), this).show();

return true;

}

private static class DropDownAdapter implements ListAdapter, SpinnerAdapter {

private SpinnerAdapter mAdapter;

public DropDownAdapter(SpinnerAdapter adapter) {

mAdapter = adapter;

}

public int getCount() {

return mAdapter == null ? 0 : mAdapter.getCount();

}

public Object getItem(int position) {

return mAdapter == null ? null : mAdapter.getItem(position);

}

public long getItemId(int position) {

return mAdapter == null ? -1 : mAdapter.getItemId(position);

}

public View getView(int position, View convertView, ViewGroup parent) {

return getDropDownView(position, convertView, parent);

}

public View getDropDownView(int position, View convertView,ViewGroup parent) {

if (mAdapter == null) {

return null;

}

mAdapter.getDropDownView(position, convertView, parent);

}

public boolean hasStableIds() {

return mAdapter != null && mAdapter.hasStableIds();

}

public void registerDataSetObserver(DataSetObserver observer){

if (mAdapter != null) {

mAdapter.registerDataSetObserver(observer);

}

}

public void unregisterDataSetObserver(DataSetObserver observer) {

if (mAdapter != null) {

mAdapter.unregisterDataSetObserver(observer);

}

}

// PATCHED

public boolean areAllItemsEnabled() {

if (mAdapter instanceof BaseAdapter) {

return ((BaseAdapter) mAdapter).areAllItemsEnabled();

} else {

return true;

}

}

// PATCHED

public boolean isEnabled(int position) {

if (mAdapter instanceof BaseAdapter) {

return ((BaseAdapter) mAdapter).isEnabled(position);

} else {

return true;

}

}

public int getItemViewType(int position) {

return 0;

}

public int getViewTypeCount() {

return 1;

}

public boolean isEmpty() {

return getCount() == 0;

}

}

}