getSherlockActivity().findViewById(android.R.id.list);
new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getSherlockActivity(),
"You selected :", Toast.LENGTH_SHORT).show();
}
};
我正在尝试向我的活动添加一个事件监听器,但根本没有显示toast消息。我从onCreateView
方法
答案 0 :(得分:4)
您似乎没有在列表中设置点击监听器,您只是创建它,甚至没有保留对它的引用。
尝试这样:
ListView lv = (ListView)(getSherlockActivity().findViewById(android.R.id.list));
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getSherlockActivity(),
"You selected :", Toast.LENGTH_SHORT).show();
}
});
答案 1 :(得分:2)
getSherlockActivity().findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getSherlockActivity(),
"You selected :", Toast.LENGTH_SHORT).show();
}});
<强> EDITED 强>
((ListView)getSherlockActivity()).findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getSherlockActivity(),
"You selected :", Toast.LENGTH_SHORT).show();
}});
在onCreate()中添加此行。
答案 2 :(得分:1)
我没有看到你添加任何东西。你所做的只是findViewById()
没有任何目的(因为你没有使用返回值。你也没有理由创建新的OnItemClickListener
因为你没有使用它。而且,不,放两行代码彼此相邻不会以任何方式自动交互...
正确的方法是:
ListView v = (ListView)getSherlockActivity().findViewById(android.R.id.list);
v.setOnItemClickListener( new OnItemClickListener() {
...
...
答案 3 :(得分:1)
仅添加
ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
}
和Activity应该实现OnItemClickListener
或
ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
long id) {
}
答案 4 :(得分:1)
几周前,我发现了同样的情况。我没有使用Sherlock但是,它可能有助于设置下一行。
listView.setItemsCanFocus(false);
另外,请确保将clickable false设置为行项目中的任何按钮。