遍历自定义布局中的所有视图ListView

问题描述:

我的ListView有10行,每行有TextViewButton。每次我点击一个Button我想遍历我行中的每个Button以检查它的drawable。 挑战在于,除了我单击的视图外,它将返回全部空值。 任何人都有一个想法,我怎么能做到这一点?检查下面的代码片段。遍历自定义布局中的所有视图ListView

public View getView(int position, View view, ViewGroup parent) { 
    convertView = inflater.inflate(R.layout.customlayout, null); 

    TextView textview = (TextView) view.findViewById(R.id.textview); 
    Button button = (Button) view.findViewById(R.id.button); 

    ListView listParent = (ListView) parent; 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      for(int ctr=0; ctr<listParent.getCount(); ctr++) { 
       //traverse to all the buttons in list here 
      } 

     } 
    }); 

    return view; 
} 

是的,你只需将onclick监听器设置为一个id = button的按钮即可。所以即使您调用所有具有相同名称的按钮,也只能为一个按钮工作。我建议将每一个按钮都标识为button1 button2 button3 ... button10,您可以使用for(){}并设置每个按钮的onclick监听器。

+0

这是我的自定义ListView适配器的代码片段。当我设置listview.setAdapter(myAdapter);它会自动为我的所有按钮创建一个监听器。我想要的是,如果我点击button1,我想检查button0,button2,button3等检查他们的drawables。 – 2012-08-01 08:45:04

+0

你试过这个来得到按钮吗? Button wantedbutton = listView.getChildAt(ctr);当你说要检查它的drawable时,你是什么意思? – Xenione 2012-08-01 08:56:32

+0

如果该按钮正在根据我的音频设置首选drawable。所以,我的音频播放实现是在这个适配器内部设置的。无论如何,如果没有事情发生,我可能会将此实现转移到我的活动中。 – 2012-08-01 09:01:02