2011-12-06 7 views
0
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View item, 
        int position, long id) { 

     if(position == 0) 
      mainListView.setSelector(R.drawable.settings_selector_up); 
     else if(position == mainListView.getCount()) 
      mainListView.setSelector(R.drawable.settings_selector_down); 
     else 
      mainListView.setSelector(R.drawable.settings_selector_mid); 
      } 
       }); 

私はリストビューを持っています、私のリストビューは丸い角を持っています。私はlistviewに3つのセレクタを使用します。だから私はリストビューの最初の項目で選択するときには、topleftとtoprightの丸い角だけを持ってsettings_selector_upを動作させる必要があります。リストビューの途中に丸みのついたコーナーがない場合、リストビューの最後の項目は丸いボトムフィールとボトムフィールドコーナーを持つ必要があります。私はonitemClickListenerでこれを使用しますが、それは良い点ではありません。これを行う別の方法がありますか?どのように別のリストセレクタを設定する

+0

データを設定するためにアダプタを使用していますか? –

+0

はいアダプターを使用しています – fish40

答えて

1

を設定することができますまあ、解決するために、かなり迅速に問題のようですが、実際そうではありません。あなたのアダプタを変更し、それがアイテムの異なる3タイプを受け入れるように作る(ダウン、アップ、半ば)、その後、このようなものでgetViewメソッドを変更する必要があります。

... 
if (convertView == null) { 
    convertView = getLayoutInflater().inflate(R.layout.your_layout, parent, false); 

    switch (type) { 
     case TYPE_ITEM_UP: 
      convertView.setBackgroundResource(R.drawable.selector_up); 
      break; 

    case TYPE_ITEM_DOWN: 
     convertView.setBackgroundResource(R.drawable.selector_down); 
     break; 
     ... 
    } 
} 
... 

このexampleに見てください、あなたはあなたを減らすことができます問題は、非常に役立ちます。私はあなたの問題と同じソリューションを使用し、それはうまく動作します。

0

ビューを返すためgetViewの方法では、その後の任意のアダプタを使用している場合は、セレクタ

関連する問題