Che*_*eng 7 android android-listview
目前,我有一ListView排.单击行上的任何区域将产生ListView单击事件.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
this.getListView().setMultiChoiceModeListener(new ModeCallback());
this.getListView().setOnItemClickListener(new ListViewOnItemClickListener());
} else {
// http://stackoverflow.com/questions/9754170/listview-selection-remains-persistent-after-exiting-choice-mode
this.getListView().setOnItemLongClickListener(new ListViewOnItemLongClickListener());
this.getListView().setOnItemClickListener(new ListViewOnItemClickListener());
}
Run Code Online (Sandbox Code Playgroud)
现在,对于每一行,我想添加一个小按钮.单击小按钮将产生按钮单击事件,这与ListView原始单击事件不同.

在我ArrayAdapter,我用
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = activity.getLayoutInflater();
rowView = inflater.inflate(R.layout.watchlist_row_layout, null);
...
}
Button button = (Button)rowView.findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Utils.showLongToast("BUTTON CLICK");
}
});
Run Code Online (Sandbox Code Playgroud)

单击该按钮将产生按钮单击事件.但是,单击按钮以外的区域,将不再产生任何ListView单击事件.
我可以知道为什么会这样吗?有什么方法可以解决这个问题吗?
Phi*_*oda 14
如果要使行和按钮都可单击,请设置
android:focusable="false"
Run Code Online (Sandbox Code Playgroud)
为你的按钮.ImageButtons,RadioButtons,......
Android主要是为大量输入法设计的.整个系统完全无需触摸屏即可工作.要在UI中导航,用户可以使用方向键,当视图和视图是可聚焦的时,它会聚焦视图之后的视图.默认情况下,所有Android控件都是可聚焦的.为了防止具有无法聚焦的控件,ListView将简单地阻止选择(和单击)项目视图.按照设计,ListView阻止包含至少一个可聚焦后代的项目视图的点击,但它不会使内容焦点可达,调用setItemsCanFocus(true).
这是一个很好的解释:在ListView中有几个可点击的区域
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |