在列表视图中单击控件的对话框

时间:2018-03-15 10:00:49

标签: android listview datepicker dialog

在Listview视图中对控件显示对话框(如日期选择器)的最佳做法是什么?

是否可以创建嵌入对话框逻辑并将其放入Listview视图的自定义控件?

编辑:

例如: 我有一个放在Listview中的textEdit。我想在用户点击textEdit时显示日期选择器。我想知道将对话逻辑放到哪个最佳位置。

1 个答案:

答案 0 :(得分:0)

您可以在setOnItemClickListener的适配器逻辑中使用ListView

然后,您需要创建OnItemClickListener的实例并覆盖OnClick()方法并在那里执行您的点击逻辑。下面是一个非常简单的例子来演示这个概念。

public class MySimpleListAdapter implements ListAdapter {

    // Set your constructors and so on

    . . . 

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;

        if (convertView == null) {
            convertView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.simple_row_layout, parent, false);
            viewHolder = new ViewHolder();
            viewHolder.textView = (TextView) convertView.findViewById(R.id.simple_text_view);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        if (adapterData != null) {
            viewHolder.textView.setText(item.getTaskTitle()); // This is logic from my SQ Lite database
            viewHolder.textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Implement your logic for launching a DialogFragment here
                }
            });
        }
        return convertView;
    }
}

最后,在您显示Activity的{​​{1}}中,只需将ListView设置为您的MySimpleListAdapter即可。

我上面的代码使用ListView小部件而不是TextView,但它应该很简单,可以用EditText小部件替换它。