我的课程中有以下课程:
public class RZoom extends Activity {
private ArrayList<FItem> m_FItems;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fchooser);
TextView tvName = (TextView)findViewById(R.id.txtTitleShow);
m_fItems = ((ArrayList<FItem>)this.getIntent().getSerializableExtra("fItems"));
tvName.setText(this.getIntent().getExtras().getString("RName"));
ListView lv = (ListView)findViewById(R.id.listView1);
FItemAdapter adapter = new FItemAdapter(this, R.layout.row, m_FItems);
lv.setAdapter(adapter);
}
}
此类显示自定义Listview,一切正常。我的问题是:
如何在Listview上捕获项目?我见过的所有示例似乎都继承了ListActivity而不是Activity,就像我正在做的那样。
有没有办法迭代列表视图中的项目并将项目的背景颜色设置为红色,具体取决于实际项目? (换句话说,我想根据实际项目以编程方式突出显示项目)
任何帮助将不胜感激!
答案 0 :(得分:2)
答案 1 :(得分:0)
对于您的第一个问题,您需要从其ID中获取ListView,因为您从Activity继承而不是从ListActivity继承:
ListView lv_GetViewList = (ListView)findViewById(R.id.myListView);
lv_GetViewList.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
// Your Code here
}
});
2。您可以覆盖getView()函数,然后根据您要用于特定Control或所有控件(例如TextView)的条件来获取所需的行控件。你可以设置它的背景颜色:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
TextView tv_Text = (TextView) v.findViewById(R.id.myRowTextView);
if(tv_Text != null)
{
tv_Text.setBackgroundColor(Color.RED);
}
return v;
}