Android列表视图问题

Android列表视图问题,android,android-listview,Android,Android Listview,我的课程中有以下课程: 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); setC

我的课程中有以下课程:

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);

    }
}
公共类RZoom扩展活动{
私人ArrayList m_FItems;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.fchooser);
TextView tvName=(TextView)findViewById(R.id.txtTitleShow);
m_fItems=((ArrayList)this.getIntent().getSerializableExtra(“fItems”);
tvName.setText(this.getIntent().getExtras().getString(“RName”));
ListView lv=(ListView)findViewById(R.id.listView1);
FItemAdapter=新FItemAdapter(此,R.layout.row,m_FItems);
低压设置适配器(适配器);
}
}
这个类显示一个自定义的Listview,一切正常。我的问题是:

  • 如何在Listview上捕获单击的项目?我看到的所有示例似乎都继承了ListActivity而不是Activity,就像我正在做的那样

  • 是否有一种方法可以遍历listview中的项目,并根据实际项目将项目的背景色设置为红色?(换句话说,我希望根据实际项目以编程方式突出显示项目)

  • 任何帮助都将不胜感激

  • lv.setOnItemClickListener()
  • 覆盖FiteAdapter的getView()以根据项目/位置更改颜色
  • 对于第一个问题,您需要从其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
       }
    });
    
    @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;
    }