Android Can';无法获取textview并\n正常工作

Android Can';无法获取textview并\n正常工作,android,textview,Android,Textview,我代表一位朋友发布了这篇文章,我没有android SDK来测试这一点,因此如果这是非常明显的,我深表歉意: 正在尝试使用新行上的时间戳更新TextView: viewText = viewText + "\n"+ String.format("%d:%02d:%02d", minutes, seconds,millis); 但不管发生什么事情,结果总是一样的 代码如下: package com.example.polyrhythm; import android.app.Activ

我代表一位朋友发布了这篇文章,我没有android SDK来测试这一点,因此如果这是非常明显的,我深表歉意:

正在尝试使用新行上的时间戳更新TextView:

viewText = viewText + "\n"+ String.format("%d:%02d:%02d", minutes, seconds,millis);
但不管发生什么事情,结果总是一样的

代码如下:

    package com.example.polyrhythm;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

    TextView showResults, countDown;
    long start, stop;
    String sResults = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bStart = (Button) findViewById(R.id.startButton);
        Button bStop = (Button) findViewById(R.id.rhythmOne);
        showResults = (TextView) findViewById(R.id.resultTextView);
        // countDown = (TextView) findViewById(R.id.countDownTextView);
        showResults.setSingleLine(false);

        bStart.setOnClickListener(this);
        bStop.setOnClickListener(this);

        start = 0;
    }

    @Override
    public void onClick(View arg0) {
        switch (arg0.getId()) {
        case R.id.startButton:
            new CountDownTimer(5000, 1000) {
                public void onTick(long millisUntilFinished) {
                    // countDown.setText("" + millisUntilFinished / 1000);
                }

                public void onFinish() {
                    // countDown.setVisibility(View.GONE);
                    start = System.currentTimeMillis();
                }
            }.start();
            break;
        case R.id.rhythmOne:
            stop = System.currentTimeMillis();

            if (start != 0) {
                String viewText = "";

                long result = stop - start;
                int millis = (int) result;
                int seconds = (int) result / 1000;
                int minutes = seconds / 60;
                millis = millis % 100;
                seconds = seconds % 60;

                viewText = viewText
                        + "\n"
                        + String.format("%d:%02d:%02d", minutes, seconds,
                                millis);
                showResults.setText(viewText);
            }
            break;

        }

    }

}
布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/rhythmOne"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="----------------" />

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/rhythmOne"
        android:layout_centerHorizontal="true"
        android:text="Start" />

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/startButton"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/resultTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Result\n"
                android:lines="2" />
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

它可以是:

  • 您只允许在textview上显示一行
    android:lines=“2”

  • 请尝试在\n和文本之间留一个空格

    viewText=viewText+“\n”+字符串。格式(“%d:%02d:%02d”,分、秒、毫秒)


  • 默认情况下,
    TextView
    应该已经有多行

    因此,我假设问题出在布局文件中(您尚未发布)

    尝试暂时用XML对文本进行编码,看看是否出现了问题

                 <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"     
                        android:text="firstline\nsecondline"  
                        android:textAppearance="?android:attr/textAppearanceMedium" />
    
    
    
    文本视图是多行的吗?尝试以下操作:showResults.setSingleLine(false);您是否尝试过多个副本中的任何解决方案?是,代码有setSingleLine(false)。注释掉
    showResults.setText(viewText)
    并将
    android:text=“Result\n”
    替换为
    android:text=“firstline\nsecondline”
    。如果您这样做,是否会出现问题?是或否。同样,如果所有其他方法都失败了。只需制作两个文本视图,并将它们放在彼此下方即可。但老实说,这没有意义,因为我复制了你的布局,它在这里工作得很好。