【发布时间】:2014-11-04 01:19:59
【问题描述】:
listview 中的按钮不会触发 onclick 事件,但如果我单击该行就会触发。
我在fragment 中有一个列表视图。列表视图中的每一行都有 2 个buttons 和一个textview。问题是,如果我点击 textview 事件会被触发,但如果我点击按钮,事件不会被触发。我的数据适配器中只有字符串,因为我正在处理 files,这就是文件名。按钮将是对文件的操作。
这是适配器(我没有数据适配器的类,我必须吗?)
public class fileExplorerAdapter extends ArrayAdapter<String> {
private ArrayList<String> items;
public fileExplorerAdapter(Context context, int textViewResourceId, ArrayList<String> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.file_explorer_cell, null);
}
String fileName = items.get(position);
TextView tt = (TextView) v.findViewById(R.id.txtViewFileName);
tt.setText(fileName);
return v;
}
}
这是片段中事件的设置
// ListView Item Click Listener
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.d("debug", "in item clicked");
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) listView
.getItemAtPosition(position);
// Show Alert
Toast.makeText(
rootView.getContext(),
"Position :" + itemPosition + " ListItem : "
+ itemValue, Toast.LENGTH_LONG).show();
}
});
【问题讨论】:
-
您的按钮代码在哪里?它不会使用该代码触发与按钮相关的任何内容。
-
你能给我看看你的xml吗?
-
checkTHIS,也许你会得到一些帮助。