当前位置: 首页 > 知识库问答 >
问题:

如何在listview中获取孩子的位置?

慕祯
2023-03-14

在下面的代码中,如何获取被点击按钮的< code>Button位置?

public class HistoryAdapter extends CursorAdapter {
Button button;
TextView text;

public HistoryAdapter(Context context, Cursor c, int flags) {
    super(context, c, flags);
}

@Override
public View newView(final Context context, Cursor cursor, ViewGroup parent) {
    View view = LayoutInflater.from(context).inflate(R.layout.historylist, parent, false);
    return view;
}

@Override
public void bindView(View view, final Context context, final Cursor cursor) {
    text = (TextView) view.findViewById(R.id.text);
    button = (Button) view.findViewById(R.id.btn);
    String body = cursor.getString(cursor.getColumnIndex("name"));
    text.setText(body);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

}

}

共有2个答案

施彬郁
2023-03-14

如果您需要项目在列表中的位置,您可以从传递给onClick方法的View访问它,参考此链接您可以编辑代码:

@Override
public void bindView(View view, final Context context, final Cursor cursor) {
    text = (TextView) view.findViewById(R.id.text);
    button = (Button) view.findViewById(R.id.btn);
    String body = cursor.getString(cursor.getColumnIndex("name"));
    text.setText(body);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int position=(Integer)v.getTag();
        }
    });
}

希望有用:)

叶德运
2023-03-14

以下代码应该有效(最后的<code>非常重要):

    @Override
public void bindView(View view, final Context context, final Cursor cursor) {
    text = (TextView) view.findViewById(R.id.text);
    button = (Button) view.findViewById(R.id.btn);
    String body = cursor.getString(cursor.getColumnIndex("name"));
    final int position = cursor.getPosition();
    text.setText(body);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            doSomething(position);
        }
    });
 类似资料:
  • 我试图在父组件中显示子组件的状态,但不知何故,文本“abcde”仍然没有显示,这是示例代码 但不知怎么的,屏幕仍然是空的,“abcde”直到我点击两次,来自功能组件,所以我不知道发生了什么,请帮助,非常感谢

  • 我有一张桌子,可以有相同类型的父母。在Java中,子对象可以到达父对象,但父对象没有子对象列表。 在MySQL中,我能够创建以下查询,给我父级的子级和子级,但我无法将其转换为JPAJava。 如何翻译此查询: 在java语言中,使用Criteria builder和Criteria Query,我已经尝试了以下方法: 但这只给了我直接的孩子,没有给我亚孩子。 谢谢你的帮助。 实体:

  • 我想在我的用户列表中找到最年轻的用户并加载他们的数据:姓名、个人资料图片和当前工作分配。我已经阅读了有关查询数据的Firebase入门,但它们的示例对我不适用,因为我的数据组织方式不同。我有一个额外的子层。 这是我在Firebase中的JSON树: 我尝试加载用户列表,然后对其进行迭代以找到最年轻的用户,但这似乎有些过头了。Firebase文档让我觉得应该能够通过Firebase方法进行查询,比如

  • 这样不仅可以将转移页面的子元素放入数组,还可以将子元素的子元素放入数组。

  • 问题内容: 我有一个带有分层数据的表,其结构如下所示: 如果我传递节点ID,则希望通过在SQL中遍历其所有父节点来获得最高的节点ID /细节。 我尝试过CTE,但我无法以某种方式获得正确的组合。但是,我将此功能用作函数,但是它太慢了,以至于我不得不发布这个问题。 在上面的示例中,如果我通过6,则我想拥有最高的即1。通过遍历6 => 5 => 3 => 2 => [1](结果) 在此先感谢您的帮助。

  • 问题内容: 我有以下结构: -包含多个FieldEditor- 编辑表单的字段并在其状态下保存有关该字段的各种值 在FormEditor中单击按钮时,我希望能够从所有组件中收集有关字段的信息,处于其状态的信息,并将其全部包含在FormEditor中。 我考虑过将有关字段信息的信息存储在的状态之外,而是将其置于的状态。但是,这将需要在组件的每个组件发生更改时侦听它们并以其状态存储其信息。 我不能只访