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();
    }
});

}

私が言ったように、ユーザーがビュー内のテキストを押すと、このコードは正常に機能しますが、空のビューは明らかに応答しません。ありがとう !

ユーザーが赤いスポットを押すとEnterがアクティブになり、緑の場合は複製など

ユーザーが赤いスポットを押すとEnterがアクティブになり、緑が重複する場合など...現在のステータスは単語を押す必要があり、色付きのスポットを押すと何もしません

4

4 に答える 4

1

間違っていない場合は、レイアウトをクリック可能にするためにこれが必要です

このようなことを試してください OnClickListener を追加できます:

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

動作するはずです;)

于 2013-03-05T12:44:39.543 に答える
0

私があなたがテキストを使用している、listviewまたは表示しているよりも間違っていない場合。 あなたは一つのことをすることができます。テキストビューを次のように作成します。そうすることで、マークした場所に触れることができます。 これがお役に立てば幸いです。 tableview

layout_widthfill_parent

于 2013-03-06T03:41:36.120 に答える
0

あなたのIDを作成しますdialog_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 に答える