2016-09-19 9 views
1

リストビューを持っているときに、「isSelected()」が選択されていてもfalseを返します。 ListViewは "isSelected()"が動作するために2回クリックする必要があります...私はそれに似た問題を見ましたが、提案されたソリューションのどれも動作しません..Android:isSelectedがListViewで初めて動作しない

注:私はカスタムListAdapterを使用しています。私は、行のクリックをリッスンしていますところ、私はリストビューにsetOnItemClickListenerを使用傾ける

row.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(final View v) { 

      v.clearFocus(); 

      if (v.isSelected()) 
      { 

としては、私がリストビューにsetOnItemClickListenerを追加提案し、今では、D選択された場合oesn't検出、それは常にfalse

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, 
           long id) { 

      Log.v("myApp", "onItemClick is " + position); 

      if (v.isSelected()) 
      { 
       v.setSelected(false); 

       Log.v("MyApp", "fiend deselect row " + position); 

       v.setBackgroundResource(R.color.default_color); 

      } else { 
       Log.v("MyApp", "fiend click row " + position); 

       v.setSelected(true); 

       v.setBackgroundResource(R.color.pressed_color); 

      } 

     } 
    }); 
+0

がない行にリストビューにリスナーを追加 – XxGoliathusxX

+0

はそれをしたが、今ではそのです – cal

答えて

1

を返す設定listView.onItemClicklistenerの代わりに、このようなrow.setOnClickListener

listView.setOnItemClickListener(new OnItemClickListener() { 
          @Override 
          public void onItemClick(AdapterView<?> a, View v, int position, 
            long id) { 


           } 
         }); 
+0

カスタムListAdapterを使用しています。これは、行のクリックをリスンしているため、ListViewでsetOnItemClickListenerを使用できません。 – cal

+0

行のクリックをリッスンする必要はありません。 onItemClickListenerを設定します。ここでは、ユーザーがクリックした項目。 –

+0

上記の私の編集を参照してください。今度は "isselected"のために常にfalseを返します。 – cal

関連する問題