1

私はリストビューを持っています。ListItem をクリックすると、ListItem の背景 (ビュー) を別の色に設定します。

  listView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                    setupDetailView(position);
                    setupChartView(position);
                    setupARView(position);
                    emptyView.setVisibility(View.INVISIBLE);

                    quotesAdapter.isSelected = true;
                    //v.setBackgroundResource(R.drawable.stocks_selector);
                }
            });

ここに私のアダプターがあります:

private class QuoteAdapter extends ArrayAdapter<Quote> {

        private ArrayList<Quote> items;
        public boolean isSelected = false;

        public QuoteAdapter(Context context, int textViewResourceId, ArrayList<Quote> items) {
            super(context, textViewResourceId, items);
            this.items = items;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.mainrow, null);

                if(isSelected)
                    v.setBackgroundResource(R.drawable.red);
                else
                    v.setBackgroundResource(R.drawable.transparent_background);
            }

問題は、複数の行を選択すると、複数の行の背景が色付きになることです。クリックしたアイテムの背景を色付きにしたいだけです。行 2 をクリックすると赤に変わり、行 1 をクリックすると行 2 が通常に戻り、行 1 が赤に変わります。

これどうやってするの?

4

1 に答える 1

2

リストセレクターを ListView に配置します

 <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:listSelector="@drawable/stocks_selector" />

stocks_selector.xml は次のようになります。

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    type="rectangle"

>
    <gradient
        android:startColor="@color/start_gradient"
        android:endColor="@color/end_gradient" 
        android:angle="270" />
/>
</shape>
于 2010-09-27T22:03:25.670 に答える