Java Android-ListView并单击侦听器

Java Android-ListView并单击侦听器,java,android,android-listview,onitemclick,Java,Android,Android Listview,Onitemclick,我有一个列表视图lv。我将OnItemClickListener和OnItemLongClickListener设置在lv上。但是当调用OnItemLongClick时,也会调用OnItemClick。因此,我需要调用OnItemLongClick,而不调用OnItemClick。我怎么能做到 请原谅我的英语 UPD这里有一些代码 似乎在setOnItemLongClickListener 例如: lv.setOnItemClickListener(new OnItemClickListene

我有一个列表视图
lv
。我将
OnItemClickListener
OnItemLongClickListener
设置在
lv
上。但是当调用
OnItemLongClick
时,也会调用
OnItemClick
。因此,我需要调用
OnItemLongClick
,而不调用
OnItemClick
。我怎么能做到

请原谅我的英语

UPD这里有一些代码



似乎在
setOnItemLongClickListener

例如:

lv.setOnItemClickListener(new OnItemClickListener()
        {
        public void onItemClick(AdapterView<?> arg0,View arg1,int arg2, long arg3){
            ListView lv = (ListView) findViewById(R.id.listView1);      
            final String Name = lv.getAdapter().getItem(arg2).toString();               

            // Make sth on click
        }});


        lv.setOnItemLongClickListener(new OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    final int arg2, long arg3) {
            // Make sth on longclick
            return true;
            }
        });  
lv.setOnItemClickListener(新的OnItemClickListener()
{
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
ListView lv=(ListView)findViewById(R.id.listView1);
最终字符串名称=lv.getAdapter().getItem(arg2.toString();
//即兴制作
}});
lv.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
最终整数(arg2,长arg3){
//长按一下做某事
返回true;
}
});  

这是我的代码,它也适用于长按事件。长按该按钮时,不会触发On item click事件

package com.example.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView list = (ListView)findViewById(R.id.list);

        String fuel[] = new String[] { "Select Any", "Petrol", "Diesel",
                "CNG Company Fitted", "CNG External Fitted" };
         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, fuel);
         list.setAdapter(adapter);
         list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();

            }
        });

         list.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();

                return true;
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
package com.example.spinner;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.AdapterView.OnItemLongClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView列表=(ListView)findViewById(R.id.list);
字符串燃料[]=新字符串[]{“选择任何”、“汽油”、“柴油”,
“CNG公司安装”、“CNG外部安装”};
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,fuel);
list.setAdapter(适配器);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
Toast.makeText(getApplicationContext(),“1”,Toast.LENGTH\u SHORT.show();
}
});
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
Toast.makeText(getApplicationContext(),“2”,Toast.LENGTH_SHORT.show();
返回true;
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}

请发布您的代码。我们不是不查看代码就可以指导您的圣诞老人:)哇,我添加了一个覆盖,我的代码工作正常!非常感谢你!
package com.example.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView list = (ListView)findViewById(R.id.list);

        String fuel[] = new String[] { "Select Any", "Petrol", "Diesel",
                "CNG Company Fitted", "CNG External Fitted" };
         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, fuel);
         list.setAdapter(adapter);
         list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();

            }
        });

         list.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();

                return true;
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}