遍历自定义布局中的所有视图ListView
问题描述:
我的ListView有10行,每行有TextView
和Button
。每次我点击一个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监听器。
这是我的自定义ListView适配器的代码片段。当我设置listview.setAdapter(myAdapter);它会自动为我的所有按钮创建一个监听器。我想要的是,如果我点击button1,我想检查button0,button2,button3等检查他们的drawables。 – 2012-08-01 08:45:04
你试过这个来得到按钮吗? Button wantedbutton = listView.getChildAt(ctr);当你说要检查它的drawable时,你是什么意思? – Xenione 2012-08-01 08:56:32
如果该按钮正在根据我的音频设置首选drawable。所以,我的音频播放实现是在这个适配器内部设置的。无论如何,如果没有事情发生,我可能会将此实现转移到我的活动中。 – 2012-08-01 09:01:02