无法获得textview和\ n工作

时间:2013-08-21 19:29:21

标签: android textview

代表朋友发布此消息,我没有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>

2 个答案:

答案 0 :(得分:0)

可以是:

  1. 您只允许在textview上显示一行。
  2. android:lines="2"

    1. 尝试在\ n和文本之间留一个空格。

      viewText = viewText +“\ n”+ String.format(“%d:%02d:%02d”,分钟,秒,毫秒);

答案 1 :(得分:0)

默认情况下,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" />