2012-01-15 62 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。