android子视图没有按状态
问题描述:
我做了一个线性布局,我添加视图,模拟一个表,因为我已经读过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时,它停止工作。我曾尝试用可成为焦点,点击播放,重复的父母状态,但没有运气。
答
必须设置列表视图上的OnItemClickListener,而不是一个OnClickListener。