我想在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);
}
};