я динамически добавлять макет в соответствии с определенным размером массива, который изменяется каждый раз, как показано ниже:андроид действия OnClick для динамически добавлены ImageButton из макета
for(int i = 0; i < topps.size(); i++)
{
lr1 = new LinearLayout(Main.this);
lr1.setOrientation(LinearLayout.VERTICAL);
scrool.addView(lr1);
final View child = getLayoutInflater().inflate(R.layout.tops_data, null);
red = (TextView)child.findViewById(R.id.topp_detail_red_txt);
black = (TextView)child.findViewById(R.id.topp_detail_black_txt);
use = (ImageButton)child.findViewById(R.id.imageButton2);
use.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(bgh == false)
{
Toast.makeText(this, "btn1 is "+child.getId(), Toast.LENGTH_SHORT).show();
use.setBackgroundResource(R.drawable.tick_unsel);
}
else if(bgh == true)
{
Toast.makeText(this, "btn1 is "+child.getId(), Toast.LENGTH_SHORT).show();
use.setBackgroundResource(R.drawable.tick_select);
}
}
});
lr1.addView(child);
child.setId(main_cnt);
use.setId(main_cnt);
В приведенном выше коде все работает нормально, количество просмотров указано в соответствии с размером массива, и я получаю идентификатор кнопки для каждого вида.
Изображение кнопки не меняется в соответствии с состоянием, но тосты правильно печатаются. Например:
Если у меня есть 5 просмотров, когда я нажимаю кнопку 3-го представления, тост отображается корректно с помощью setId, но изображение изменяется только в 5-м представлении.
Как правильно изменить изображение в каждом представлении?
нет, это не работает .... –
@SivaK: если он не работает, то и не может сделать связывание с помощью 'setOnTouchListener' вместо Ф.О.' setOnClickListener' –
@imran хан onclicklistener работает, но фоновое изображение не меняется , я получаю тост. msg –