Android 单击ListView侦听器

Android 单击ListView侦听器,android,listview,onclicklistener,Android,Listview,Onclicklistener,我设计了一个列表片段。在itemLongClick()上,一个活动开始onActivityResult(),我再次设置了适配器,并动态创建了一个新的文本视图onClick在项目中的每个视图中,都会出现一个Toast。如果在适配器中的每个视图上实现onClick(),则itemLongClick()不起作用 我已在下面附上我的代码: 内部列表片段: @Override public void onViewCreated(View view, Bundle savedInstanceStat

我设计了一个
列表片段
。在
itemLongClick()
上,一个活动开始
onActivityResult()
,我再次设置了适配器,并动态创建了一个新的文本视图
onClick
在项目中的每个视图中,都会出现一个
Toast
。如果在适配器中的每个视图上实现
onClick()
,则
itemLongClick()
不起作用

我已在下面附上我的代码:

内部
列表片段

@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view,
                    int position, long id) {
                clickPosition = position;
                Intent intent = new Intent(parent.getContext(),AddEventActivity.class );
                startActivityForResult(intent, CREATE_EVENT);
                return true;
            }
        });
    }
@Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = (View)inflater.inflate(R.layout.event_listview_items, null);
        TextView hour = (TextView)view.findViewById(R.id.hour);
        LinearLayout layout = (LinearLayout)view.findViewById(R.id.layout);


        hour.setText(hourAL.get(position));
        if(eventAL.size() != 0){
            for(int i=0;i<eventAL.size();i++){
                if(eventAL.get(i).getPosition() == position){
                    for(int j =0;j<eventAL.get(i).eventName.size();j++){
                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,1.0f);
                        params.setMargins(3, 3, 3, 3);
                        final TextView txt = new TextView(parent.getContext());
                        txt.setId(++textid);
                        txt.setBackgroundColor(Color.GRAY);
                        txt.setLayoutParams(params);
                        txt.setText(eventAL.get(i).eventName.get(j));
                        layout.addView(txt);

                        txt.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Toast.makeText(parent.getContext(), txt.getId() + " clicked", Toast.LENGTH_SHORT).show();

                            }
                        });
                    }
                }
            }
        }
        return view;
    }

请有人指导我如何实现这两个功能。

我已经找到了解决方案。
对于我的动态视图,我将setLongClickable()设置为true

Megha,您可以在getView()方法中编写LongClick。单击convertView,您可以随心所欲地执行任务。无论是单击项目子项还是单击整个项目,这两种方式在您的情况下都不起作用。在Toast中,try
txt.getId().toString
。@pratt我无法执行此操作,因为有其他列表视图使用相同的适配器。@MSGadag这不会做任何更改