2013-06-24 33 views
0

我开发一个应用程序,我动态填充父容器LinearLayout蒙山许多其他LinearLayout的孩子,这些孩子走了许多ImageButton填充中的每一个,它基本上是这样的:的Android - ImageButton的onClick事件不火

的XML代码:

<ScrollView 
    android:layout_height="match_parent" 
    android:layout_width="fill_parent"> 
    <LinearLayout 
     android:id="@+id/phasesContainer" (parent container) 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

    </LinearLayout> 
</ScrollView> 

和Java代码:

for (PhaseActor pa : ph.get_actors()) { 
    if (pa.get_prospective() != Phase.PROGRAM) 
       continue; 
      ImageView phaseActor = new ImageView(context); 
      phaseActor.setImageResource((int) getActorFromMemory(
        pa.get_actroId()).get_iconId()); 
      phaseActor.setMaxHeight(30); 
      phaseActor.setMaxWidth(30); 
      phaseActor.setTag(pa.get_id()); 
      phaseActor.setBackgroundResource(android.R.color.transparent); 


      phaseActor.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        editPhaseActorClick(Integer.getInteger(v.getTag() 
          .toString())); 
       } 
      }); 

// This container is the child (LinearOut) container 
      container.addView(phaseActor, imageLayout);   } 

当我点击ImageView它不会做任何事情..功能不会触发!

回答

0

您需要设置

phaseActor.setClickable(真);

或者您可以使用ImageButton而不是ImageView。

0

你说你的标题中有ImageButton,但代码中有ImageView,你确定要使用ImageView吗?使用ImageButton应该可以得到你所需要的。