如何在ListActivity中使用onClick和onLongPress?

时间:2015-08-09 16:07:22

标签: android-activity onclicklistener listactivity onlongclicklistener

我想创建一个列表视图,我们可以使用onclick,并在其中长按一个上下文菜单。代码是

public class MainActivity extends ListActivity{

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String quizlist[]={"Normal","MCQ 2 Options","MCQ 3 options","MCQ 4 Options"};
        ArrayAdapter<String> ab=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,quizlist);
        setListAdapter(ab);
    }
}    

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以在AdapterView.OnItemLongClickListener上注册ListView。所以你需要做的是找到列表视图:

onCreate尝试

((ListView) getView).setOnItemLongKlickListener(...)

((ListView) findViewById(<the id of your list view>).setOnItemLongKlickListener(...)

实施OnItemLongClickListener时,您必须覆盖onItemLongClick方法:

来自documentation

public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id)
  

在API级别1中添加要在项目中调用的回调方法   此视图已被点击并保持。实施者可以打电话   getItemAtPosition(position),如果他们需要访问相关的数据   使用所选项目。

Parameters 
parent      The AbsListView where the click happened 
view        The view within the AbsListView that was clicked 
position    The position of the view in the list 
id          The row id of the item that was clicked

Returns true if the callback consumed the long click, false otherwise

因此,parent是您的ListViewview是*长按'列表项的视图。 position是列表中的位置,因此也是数组中的位置。对于id,我不确定默认实现是返回常量还是position