【问题标题】:add your own listener to a list将您自己的侦听器添加到列表中
【发布时间】:2013-03-13 09:21:38
【问题描述】:

我试图在该列表中添加一个侦听器,但我不明白为什么如果您想查看其余代码,请查看add your own listener to a list

public void onCreatebis(final ResolveInfo resolveInfo)  {

            setContentView(R.layout.main);
            final Intent mainIntent=new Intent(Intent.ACTION_MAIN,null);
            mainIntent.addCategory(Intent.CATEGORY_LAUNCHER) ;
            final PackageManager pm = getApplicationContext().getPackageManager();
            final ArrayList<ResolveInfo> listP= (ArrayList<ResolveInfo>)                    pm.queryIntentActivities( mainIntent, 0);
            final int trimLength = "com.android.".length();
            ArrayList<String> maliste = new ArrayList<String>();
                        // Loop over each item.
            for (ResolveInfo info : listP) {
                // Get the (full, qualified) package name.
                String packag = info.activityInfo.applicationInfo.packageName;

                // Now, trim it with substring and the trim length.
                String trimmed = packag.substring(trimLength);
                maliste.add(trimmed);
            }
            ListView list = (ListView)findViewById(R.id.list);
            monadaptateur adapter2 = new monadaptateur(this, maliste);

            list.setOnItemClickListener(new OnItemClickListener(){

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    Log.v("lalalala","lalala");

                }
                   });
            list.setAdapter(adapter2);
    }

【问题讨论】:

    标签: android list listener


    【解决方案1】:

    如果 ListView 有可聚焦的项目,则onClickListener 将触发而不是onItemClickListener。设置item可以聚焦为false

    list.setItemsCanFocus(false);
    

    看看这个thread。另请注意,有解决方法。但更好的选择是将项目设置为不可聚焦并使用OnItemClickListener,或者使它们可聚焦并在视图上使用onClickListener

    此外,不应为列表视图设置onClickListener。而是针对getView() 方法中的每个列表视图项

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // ...
    
        view.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // your code
            }
    
        });
    
        return view;
    }
    

    【讨论】:

    • 即使我的日志也不显示 public void onItemClick(AdapterView> parent, View view, int position, long id) {Toast.makeText(DvpList2.this, "je suis là!", Toast.LENGTH_SHORT).show(); }
    • stackoverflow.com/questions/3451947/… 我已经看到了,甚至那个 dfoes 不起作用
    猜你喜欢
    • 2013-02-17
    • 2011-09-28
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多