Android 从按钮获取输入的单行 textView(对于计算器应用程序),这是个问题吗?

Android Single line textView (for a calculator app) that takes input from buttons, is this an issue?

我是一名初学者,试图在 Android Studio 中制作一个从按钮输入的计算器应用程序。事实证明,与仅使用 EditText 相比,这比我想象的要困难得多,但到目前为止,这是一次很棒的学习经历。

我正在处理我正在使用 textView 的应用程序的显示部分。我将其设置为当单击按钮时,按钮的值附加到 textView。这是一个计算器,所以我希望 textView 显示在一行上,并在 textView 的宽度已满时水平移动以获取新输入。

我从另一个人的 post 中找到了一种方法,可以通过在 XML 中设置以下内容来实现:

    android:inputType="text"
    android:maxLines="1"

当我这样做时,它完全符合我的要求,但我收到一个 IDE 警告,上面写着:

Warning: Attribute android:inputType should not be used with <TextView>: Change element type to <EditText> ?

如果没有 android:inputType="text" 代码,textView 似乎无法正确滚动,我不想使用 EditText。这有什么值得担心的吗?有更好的方法吗?

感谢您的帮助。

不要在 TextView 中使用 inputType。

由此link - https://youtu.be/HYt1Ntu89X4

我的理解是您希望文本动态滚动,即在按下按钮时滚动。

你可以这样做:

XML

<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/hzw"
    android:fillViewport="true"
    android:layout_gravity="end">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tv1"
    android:maxLines="1"
    android:textSize="20dp"
    android:textStyle="bold"
    android:gravity="end"/>

</HorizontalScrollView>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/b"
    android:text="Add Text"/>

Java

    tv1 = (TextView)findViewById(R.id.tv1);
    tv1.setText("123+123");
    hzw = (HorizontalScrollView)findViewById(R.id.hzw);
    b = (Button)findViewById(R.id.b);

    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            tv1.append("d+1+cff");

            hzw.post(new Runnable() {
                @Override
                public void run() {
                    hzw.fullScroll(View.FOCUS_RIGHT);
                }
            });
        }
    });