代码之家  ›  专栏  ›  技术社区  ›  CJF

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

  •  3
  • CJF  · 技术社区  · 7 年前

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

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

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

    当我这么做的时候,它正是我想要的,但我得到了一个IDE警告,上面说:

    警告:属性 android:inputType <TextView> :将元素类型更改为 <EditText> ?

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

    谢谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  2
  •   supro_96 Jonathan Spooner    7 年前

    不要在TextView中使用inputType。

    https://youtu.be/HYt1Ntu89X4

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

    你可以这样做:

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