2012-01-15 64 views
4

我做了一個線性佈局,我添加視圖,模擬一個表,因爲我已經讀過scrollview裏面的listview不是一個選項:) 所以我有一個線性佈局wrap_content在scrollview中。android子視圖沒有按狀態

的問題是,對於意見我加入,我不能觸發任何按下狀態更改圖形當它在列表視圖之前,偉大的工作。

我有以下幾點:

if (arrayWorksWith.size()!=0) 
    { 
     this.listAdapter = new WorksWithListAdapter(this, R.layout.works_with_cell, R.id.lblItemTitle, arrayWorksWith); 

     for (int i=0; i<arrayWorksWith.size(); i++) 
     { 
      View v = this.listAdapter.getView(i, null, layoutTblWorksWith); 
      v.setTag(new Integer(1000 + arrayWorksWith.get(i).getId())); 
      v.setOnClickListener(this); 

      layoutTblWorksWith.addView(v); 
     } 
    } 

的問題是,單擊事件被炒魷魚,但我沒有任何視覺反饋。內部的看法我與背景設置爲以下可繪製一個ImageView的:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

<item android:state_pressed="true" android:drawable="@drawable/r1" /> <!-- pressed -->  
<item android:state_focused="true" android:drawable="@drawable/r1" /> <!-- focused --> 
<item android:drawable="@drawable/transparent_background" /> <!-- default --> 

</selector> 

而且我剛纔試了我加入視圖觸摸監聽器,但這個失敗以及:(

   v.setOnTouchListener(new OnTouchListener() 
       { 
        public boolean onTouch (View v, MotionEvent event) 
        { 
         TextView lblCategoryTitle = (TextView)v.findViewById(R.id.lblItemTitle);      

         if(event.getAction() == MotionEvent.ACTION_DOWN) 
         { 
          lblCategoryTitle.setTextColor(R.color.white); 
         } 
         else if (event.getAction() == MotionEvent.ACTION_UP) 
         { 
          lblCategoryTitle.setTextColor(R.color.textLabel_blue); 
         } 

         return false; 
        } 
       }); 

所以,當這段代碼在ListView裏面時,我點擊一個單元格時,圖像正在改變背景給出視覺反饋,但是當我現在創建它並將其添加到LinearLayout時,它停止工作。我曾嘗試用可成爲焦點,點擊播放,重複的父母狀態,但沒有運氣。

回答

0

必須設置列表視圖上的OnItemClickListener,而不是一個OnClickListener。