OnListItemClick 从未被调用?

发布于 2024-09-12 00:58:26 字数 1207 浏览 9 评论 0原文

我不认为这个问题是由我的 ListActivity 子类引起的。我认为这与我的 BaseAdapter 子类有关:

package com.mohit.gtodo;

import com.mohit.gtodo.database.TasksDBAdapter;

import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CursorAdapter;
import android.widget.TextView;

public class TasksCursorAdapter extends CursorAdapter {

public TasksCursorAdapter(Context context, Cursor c) {
    super(context, c);
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    CheckBox completed = (CheckBox) view.findViewById(R.id.completed);
    TextView title = (TextView) view.findViewById(R.id.title);

    title.setText(cursor.getString(cursor.getColumnIndex(TasksDBAdapter.KEY_TITLE)));
    completed.setChecked(cursor.getInt(cursor.getColumnIndex(TasksDBAdapter.KEY_COMPLETED)) > 0);
}

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

}

我是否忘记了方法重写?

I don't think this problem is caused from my ListActivity subclass. I think it has something to do with with my BaseAdapter subclass:

package com.mohit.gtodo;

import com.mohit.gtodo.database.TasksDBAdapter;

import android.content.Context;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CursorAdapter;
import android.widget.TextView;

public class TasksCursorAdapter extends CursorAdapter {

public TasksCursorAdapter(Context context, Cursor c) {
    super(context, c);
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    CheckBox completed = (CheckBox) view.findViewById(R.id.completed);
    TextView title = (TextView) view.findViewById(R.id.title);

    title.setText(cursor.getString(cursor.getColumnIndex(TasksDBAdapter.KEY_TITLE)));
    completed.setChecked(cursor.getInt(cursor.getColumnIndex(TasksDBAdapter.KEY_COMPLETED)) > 0);
}

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

}

Am I forgetting a method override?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇见了你 2024-09-19 00:58:26

您正在使用一个复选框,它是一个可点击的项目。当某行包含可点击项目时,该行将无法再被点击。不要使用复选框,而是使用 ListView 的 choiceMode 属性。

You are using a CheckBox, which is a clickable item. When a row contains a clickable item, the row cannot be clicked anymore. Instead of using checkboxes, use ListView's choiceMode attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文