Java 用户如何仅通过长时间单击更改textview的值?

Java 用户如何仅通过长时间单击更改textview的值?,java,android,Java,Android,我正在创建一个应用程序来跟踪分数。分数显示在文本视图中,当用户单击文本视图时,分数将递增。这很好用!但是,我想设置一个onLongClickListener()来编辑文本。因此,当用户长按时,我希望屏幕上弹出一个仅限数字的编辑器,当用户单击OK或Done时,它会将TextView值更新为用户输入的金额 有人能告诉我怎样才能做到这一点吗?这是我第一个真正的应用程序,所以我对如何实现这一点有点困惑,而Google/Stackoverflow上的所有搜索都没有帮助。首先创建视图,您希望显示它()。构建

我正在创建一个应用程序来跟踪分数。分数显示在文本视图中,当用户单击文本视图时,分数将递增。这很好用!但是,我想设置一个onLongClickListener()来编辑文本。因此,当用户长按时,我希望屏幕上弹出一个仅限数字的编辑器,当用户单击OK或Done时,它会将TextView值更新为用户输入的金额


有人能告诉我怎样才能做到这一点吗?这是我第一个真正的应用程序,所以我对如何实现这一点有点困惑,而Google/Stackoverflow上的所有搜索都没有帮助。

首先创建视图,您希望显示它()。构建对话框并在onLongClickListener中显示对话框。
另外-为对话框中的按钮分配一个onClickListener,它将把输入应用到您的TextView。

由于TextView是只读的,我过去所做的就是在同一个地方有一个EditText和一个TextView。通过这种方式,当您想要进入和退出“编辑模式”时,您必须有代码来显示和隐藏这两个视图。因此,在onLongClick事件中,您将隐藏TextView并显示EditText。在Enter键上(在EditText上使用键侦听器),当EditText失去焦点时(也有焦点侦听器),您将执行相反的操作

另一部分是如何将输入限制为数字输入。看看这个:

至于EditText失去焦点时要做什么,我会提示用户确认或取消更改。我个人会为此使用AlertDialog(通过AlertDialog.Builder)


阅读了关于这是你的第一个应用程序的评论后,如果你想澄清其中任何一点,请发表评论。

你可以这样做

 text1.setOnLongClickListener(new OnLongClickListener()
 {  
        @Override
        public boolean onLongClick(View arg0)
        {
            text.setText("Your Text");
            return false;
        }
 });

我认为使用onLongClickListener可能不是一个好主意,因为并没有任何提示让用户长时间触摸和保持,并期待任何结果。一般来说,用户永远不会长时间点击。您可以在文本视图旁边放置一个单独的按钮,用户可以轻松理解。