У меня есть LinearLayout, в котором я добавляю представление динамически. Мне нужно изменить фон каждого вида, когда я нажимаю на него.Изменить фон просмотра внутри LinearLayout
Я пытаюсь сделать это в моем коде:
public class UserDetailActivity extends Activity implements View.OnTouchListener {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.l_user_detail);
Intent intent = getIntent();
User user = (User) intent.getSerializableExtra("class");
userWillGo = (LinearLayout) findViewById(R.id.linerLayout_userDetail_willGoTO);
for (int i = 0; i < user.getUserWillGo().size(); i++) {
View myView = (View)LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_event_list, userWillGo, false);
myView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
...
myView.setOnTouchListener(mOnTouchListener());
userWillGo.addView(myView);
}
}
private View.OnTouchListener mOnTouchListener() {
return new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.setBackgroundResource(R.color.textBlue);
}
if (event.getAction() == MotionEvent.ACTION_UP) {
v.setBackgroundResource(R.drawable.bg_item);
}
return true;
}
};
}
Что я получаю в результате этого кода:
Что мне нужно получить:
Что о Выбираете с помощью селектора состояний? – Zielony
Вы говорите о .xml? – Val
Нет. Если вы знаете, как установить фон для ваших видов, вы можете просто заменить этот фон на рисование с помощью селектора состояний. Вы можете сделать это с помощью кода или xml, в зависимости от того, r является более удобным. См.: Http://www.vogella.com/articles/AndroidDrawables/article.html#drawables_state – Zielony