【问题标题】:How to extend a listview?如何扩展列表视图?
【发布时间】:2012-01-02 10:06:01
【问题描述】:

-我尝试扩展 ListView 小部件以覆盖 onKeyDown 方法,如下所示:

public class MyListView extends ListView {

    public MyListView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        return super.onKeyDown(keyCode, event);

        // My instructions
    }
}

-在我的xml文件中:

<com.test.two.MyListView android:layout_width="150dp"
    android:layout_height="match_parent" android:id="@+id/lv"

-在我的活动中:

MyListView lv = (MyListView) findViewById(R.id.lv);  

但它不起作用,扩展列表视图小部件的正确方法是什么,谢谢。

【问题讨论】:

  • 您能解释一下您要归档的内容吗?
  • 哪一个不起作用 onKeyDown 或 ListView ?为什么要扩展 ListView ?实际需求是什么?

标签: android listview customization


【解决方案1】:

您的自定义 ListView 应该实现 View.OnKeyListener:

public class MyListView extends ListView implements View.OnKeyListener

您应该将其注册为列表视图的 onKey 侦听器:

lv.setOnKeyListener(this)

它也应该有焦点来接收 onKey 事件

lv.setFocusableInTouchMode(True);
lv.requestFocus();

最后,如果你需要接收keyDown以外的按键事件,你应该从onKey()返回true,以防止Android系统处理按键事件。

【讨论】:

    【解决方案2】:

    一个问题可能是您显然试图将代码放在方法的返回语句下方。 根据您尝试执行的操作,您可能希望将代码放在上面或稍后返回超级调用的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多