Android Listview Вопросы - PullRequest
       2

Android Listview Вопросы

1 голос
/ 04 июня 2011

В моей программе есть следующий класс:

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, и все работает отлично. Мои вопросы:

  1. Как мне зафиксировать щелчок элемента в представлении списка? Все примеры, которые я видел, похоже, наследуют ListActivity вместо Activity, как я делаю.

  2. Есть ли способ перебирать элементы в просмотре списка и устанавливать цвет фона элемента в красный, в зависимости от фактического элемента? (Другими словами, я хочу программно выделить элемент в зависимости от фактического элемента)

Буду признателен за любую помощь!

Ответы [ 2 ]

2 голосов
/ 04 июня 2011
  1. lv.setOnItemClickListener ()
  2. Переопределить функцию getView () FItemAdapter для изменения цвета в зависимости от элемента / позиции
0 голосов
/ 07 июня 2011
  1. Для первого вопроса вам нужно получить 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 () и затем получить желаемый элемент управления строкой в ​​зависимости от условий, которые вы хотите использовать для конкретного элемента управления или всех элементов управления, скажем, 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...