1

スコアを追跡するアプリを作成しています。スコアはTextViewに表示され、ユーザーがTextViewをクリックすると増分します。これは完璧に機能します!ただし、テキストを編集するためにonLongClickListener()を設定したいと思います。したがって、ユーザーがLongClickを実行すると、数字のみのエディターが画面にポップアップ表示され、ユーザーが[OK]または[完了]をクリックすると、TextView値がユーザーが入力した量に更新されます。

誰かが私がこれを達成する方法を教えてもらえますか?これは私の最初の本物のアプリなので、これを達成する方法について少し戸惑い、Google/Stackoverflowでの検索はすべて役に立ちません。

4

3 に答える 3

2

TextViewは読み取り専用なので、過去に行ったことは、同じ場所にEditTextとTextViewがあることです。このようにすると、「編集モード」を開始および終了するときに2つのビューを表示および非表示にするコードが必要になります。したがって、onLongClickイベントでは、TextViewを非表示にし、EditTextを表示します。また、Enterキー(EditTextでキーリスナーを使用)で、EditTextがフォーカスを失った場合(フォーカスリスナーもあります)、反対の操作を行います。

もう1つは、入力を数値入力に制限する方法です。これをチェックしてください: https ://stackoverflow.com/a/7300516/53501

EditTextがフォーカスを失ったときにどうするかについては、変更を確認するかキャンセルするようにユーザーに促します。私は個人的にこれにAlertDialogを使用します(AlertDialog.Builder経由)。

これが初めてのアプリであるというコメントを読んだ後、これらのことについて説明が必要な場合はコメントしてください。

于 2012-12-21T05:04:06.120 に答える
0

まず、表示するビューを作成します(その方法についてはこちらをご覧ください)。ダイアログを作成し、onLongClickListener内に-ダイアログを表示します。また、ダイアログ内のボタンにonClickListenerを割り当てます。これにより、入力がTextViewに適用されます。

于 2012-12-21T05:01:15.687 に答える
0

あなたはこの方法で行うことができます...

 text1.setOnLongClickListener(new OnLongClickListener()
 {  
        @Override
        public boolean onLongClick(View arg0)
        {
            text.setText("Your Text");
            return false;
        }
 });
于 2012-12-21T05:04:19.647 に答える