1

我可以单击每个视图内的对话框和文本。我希望所有视图都是可点击的,只有文本。

编码 :

        final Dialog dialog = new Dialog(List_Lists.this);
        dialog.setContentView(R.layout.dialog_edit_tables);
        dialog.setTitle("Action for " + table);


        TextView delete = (TextView) dialog
                .findViewById(R.id.tvDeleteTable);
        TextView cancel = (TextView) dialog.findViewById(R.id.tvCancel);

        OnClickListener l = new OnClickListener() {

            @Override
            public void onClick(View v) {

                dbAdapter = new DBmethods(getApplicationContext());
                switch (v.getId()) {


                case R.id.tvDeleteTable:
                    viewListsAdapter.listsV.remove(pos);
                    dbAdapter.deleteTable(table);
                    break;
                case R.id.tvCancel:
                    dialog.dismiss();
                    break;
                case R.id.bTableRenameName:

                    if(dbAdapter.checkTableNameOK(List_Lists.this  ,newName.getText().toString())){

                        viewListsAdapter.listsV.remove(pos);
                        viewListsAdapter.listsV.add(pos, newName.getText().toString().trim());
                        dbAdapter.renameTable(table , newName.getText().toString().trim());
                        renamedialog.dismiss();
                    };

                    break;

                default:
                    break;
                }
                // if button is clicked, close the custom dialog
                dialog.dismiss();
                lv.invalidateViews();
            }
        };

        delete.setOnClickListener(l);
        cancel.setOnClickListener(l);

        dialog.show();
    }
});

}

正如我所说,如果用户按下视图内的文本,此代码工作正常,但空视图显然不会响应。谢谢 !

如果用户按下红色点它激活输入,如果绿色而不是重复等等

如果用户按下红色点它激活输入,如果绿色比重复等等......当前状态是你必须按下这个词,如果你按下彩色点它什么都不做

4

4 回答 4

1

如果我没有错,你需要这个来使布局可点击

尝试这样的事情你可以在它上面添加一个 OnClickListener :

//onCreate
LinearLayout layout = (LinearLayout) findViewById(R.id.LinearLayout01);
layout.setOnClickListener(yourOnClickListener);

应该工作;)

于 2013-03-05T12:44:39.543 回答
0

如果我没有错,那么您正在使用listviewtableview显示文本。
你可以做一件事。
将文本视图layout_width设为fill_parent
这样,您将能够触摸您标记的位置。
希望这会有所帮助。

于 2013-03-06T03:41:36.120 回答
0

创建你的 iddialog_edit_tables

android:id=@+id\testing在你的xml中说。

现在写这个

LinearLayout yourlayout = (LinearLayout) findViewById(R.id.testing);
yourlayout.setOnClickListener(l);

希望这会有所帮助。

于 2013-03-05T12:46:39.350 回答
0

您尚未显示 XML 布局,但将可点击文本视图的宽度设置为 fill_parent 应该可以工作,还要确保您的父布局也将宽度设置为 fill_parent。

onClickListener 不是基于文本,而是基于实际组件,因此看起来 layout_width 属性设置为 wrap_content,因此组件只有文本的长度,因此只有文本所在的位置是可点击的。希望这是有道理的。

于 2013-03-05T14:33:31.453 回答