ListView项单击问题

3

我已经添加了LeadBolt广告(入口广告)。广告正常工作,但是当我从关闭标记关闭广告时,listview.click不起作用。(当我删除AdController时,Listview.click可以正常工作)

public class SoundList extends ListActivity {

int [] soundfile;
MediaPlayer mediaPlayer;
private AdController myController;
final Activity act = this;


@Override
public void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);


    myController = new AdController(act, "111111111");
    myController.loadAd();
    soundfile= new int[] {R.raw.sound1,R.raw.sound2.....};

    String[] sounds= getResources().getStringArray(R.array.sounds);        
    // Binding Array to ListAdapter
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, sounds));
    ListView lv = getListView();

    lv.setDescendantFocusability(ListView.FOCUS_BLOCK_DESCENDANTS);
    // listening to single list item on click
    lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {     

          Intent intent = new Intent(getApplicationContext(), SingleListItem.class);
          intent.putExtra("position", position);
          startActivity(intent);      

      }
    });
}

你找到答案了吗? - Jitendra
1个回答

3
在ListView的一行中有一个可聚焦(focusable)项目会导致OnItemClickListener不起作用。为了解决这个问题,需要在行视图中添加以下代码。
XML:
android:descendantFocusability="blocksDescendants"

Java:

listItem.setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);

我已经更新了,但是它还是不起作用。问题在哪里?(我编辑了这个类)谢谢。 - Erdem Azaklı
3
setDescendantFocusability 应该针对每一行调用,而不是针对整个列表视图调用。尝试使用 BaseAdapter,在 getView 方法中返回视图之前使用 setDescendantFocusability 进行设置。 - Dmytro Danylyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接