【问题标题】:Android - ListView and Click ListenersAndroid - ListView 和 Click 监听器
【发布时间】:2013-12-25 11:36:12
【问题描述】:

我有一个 ListView lv。我在lv 上设置了OnItemClickListenerOnItemLongClickListener。但是当OnItemLongClick 被调用时,OnItemClick 也被调用了。所以,我需要打电话给OnItemLongClick,而不是打电话给OnItemClick。我该怎么做?

请原谅我的英语不好。

UPD这是一些代码


              lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                            public void onItemClick(AdapterView p1, View p2, int p3, long p4)
                            {       
                                    //blah-blah-blah
                            }
                    });
            lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                            public boolean onItemLongClick(AdapterView p1, View p2, int p3, long p4) {
                                            //blah-blah-blah
                                            return true;
                            }
            });

【问题讨论】:

  • 请发布您的代码。
  • 我们不是无需查看代码就可以指导您的圣诞老人 :)
  • 哇,我添加了一个覆盖并且我的代码可以工作了!非常感谢!

标签: java android android-listview onitemclick


【解决方案1】:

看来您在setOnItemLongClickListener 中缺少@Override

例子:

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;
            }
        });  

【讨论】:

    【解决方案2】:

    这是我的代码,它也适用于长按事件。长按时不会触发项目单击事件。

    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;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多