SimpleCursorAdapter中

SimpleCursorAdapter中

我想在simplecursoradapter中自定义我的文本视图有人能帮我用一种简单的方法来做吗,在那里不需要太多的代码更改…
下面是我的工作代码,我从一个类中获取字符串并插入到SimpleCursorAdapter中
代码:

public class MyListActivity extends ListActivity {
    /** Called when the activity is first created. */


    private Cursor mCursor = null;


    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.weeklysettings);
        getListView().addHeaderView(buildHeader(), null , false);
        Cursor mCursor = getCursorDetails();
        startManagingCursor(mCursor);

        ListAdapter adapter = new SimpleCursorAdapter(this, // Context.
                R.layout.listview, // Specify the row template
                                    // to use (here, three
                                    // columns bound to the
                                    // two retrieved cursor
                                    // rows).
                mCursor, // Pass in the cursor to bind to.
                // Array of cursor columns to bind to.
                new String[] { MyClass.EVENT,
                MyClass.CHANNEL_NAME,
                MyClass.PROGRAM_TITLE,
                MyClass.EVENTTIME },

                new int[] { R.id.event, R.id.channelname, R.id.programtitle, R.id.timestamp});
        // Bind to our new adapter.
        setListAdapter(adapter);
        //setListAdapter(new ArrayAdapter<String>(this, R.layout.listview, ynetList));

    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        stopManagingCursor(mCursor);
    }


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        startManagingCursor(mCursor);
    }
    private ViewGroup buildHeader() {
        LayoutInflater infalter = getLayoutInflater();
        ViewGroup header = (ViewGroup) infalter.inflate(R.layout.listitem_header, getListView(), false);
        header.setEnabled(false);
        return(header);
      }
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
         Intent intent = new Intent(this, SettingsActivity.class);
         intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
         startActivity(intent);
         finish();
         super.onBackPressed();
    }

    private Cursor getCursorDetails() {


        String sortOrder = DataExchangeFacility.TIMESTAMP
                + " COLLATE LOCALIZED DESC";

        mCursor = getApplicationContext().getContentResolver().query(
                DataExchangeFacility.CONTENT_URI_GRACE, null, null, null, sortOrder);

        return mCursor;

    }
}

最佳答案

试一试:

    ListAdapter adapter = new SimpleCursorAdapter(this, // Context.
            R.layout.listview, // Specify the row template
            // to use (here, three
            // columns bound to the
            // two retrieved cursor
            // rows).
            mCursor, // Pass in the cursor to bind to.
            // Array of cursor columns to bind to.
            new String[] { MyClass.EVENT,
                    MyClass.CHANNEL_NAME,
                    MyClass.PROGRAM_TITLE,
                    MyClass.EVENTTIME },

            new int[] { R.id.event, R.id.channelname, R.id.programtitle, R.id.timestamp}) {
        @Override
        public void setViewText(TextView v, String text) {
            // v is your TextView
            v.setTextColor(Color.RED);
            super.setViewText(v, text);
        }
    };

10-08 03:31