【问题标题】:Clickable TextView inside a GridView in AndroidAndroid中GridView内的可点击TextView
【发布时间】:2011-04-07 10:08:47
【问题描述】:

我在 android 中有一个 GridView,我使用在 BaseAdapter 类的重写方法 getView 中创建的 TextView 填充它。最初创建的TextView的onClick方法并没有实现,而是执行按下的感觉。但是当我实现TextView的onClick时,它会执行onClick动作,但是按下的感觉消失了。

有没有一种方法可以让我感觉到按下的 TextView 工作,即使实现了 onClick 方法?

谢谢

更新 大家好,返回 false 不起作用,它显示编译错误。我想要做的是这样的事情:在 BaseAdapter 内填充 GridView

public View getView(int position, View convertView, ViewGroup parent) {
    TextView v;
    if(convertView == null){
      v = new TextView();
    }else{ 
        v = (TextView) convertView;
    }
}

此时TextView可以被聚焦并且有点击视图的感觉。 但是,如果我像这样实现 onClickListener,我可以执行操作,但按下视图(或聚焦)的感觉消失了:

 view.setOnClickListener(new View.OnClickListener() {
        @Override
           public void onClick(View v) {
              deleteHour(mapDays.get(day));
           }
        });

我可以看到GridView中有一个onClick事件,TextView中有另一个。我认为当我在 TextView 中实现 onClick 方法时,它会禁用 GridView 中的 onClick。

也许问题是,如何使 TextView 可点击改变 TextView 被点击时的状态?你有什么想法吗?

非常感谢您的回复!

【问题讨论】:

  • 你的意思是你想让textview仍然有焦点吗?
  • 我没有得到提示,但也许你只需要在 onClickListener 结束时返回 false ?这应该能够执行其他侦听器
  • 是的,我希望 textview 仍然有焦点!没错@Zack! @2red13 我会尝试在 onClickListener() 结束时返回 false!如果它有效,我会回来告诉你!非常感谢!

标签: android gridview textview clickable


【解决方案1】:

我做到了!

我发现的方法是像这样覆盖 GridView 的 setOnItemClickListener:

gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
}

希望对遇到同样问题的人有所帮助!

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2011-06-04
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    相关资源
    最近更新 更多