마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

addview로 반복 출력하기

0 추천

버튼을 누르면 현재시간을 텍스트뷰로 한줄에 출력하여 1초마다 계속 밑으로 쌓이게 구현하려고 합니다.

실행하면 화면에 아무것도 안나오네요 도와주세요~

public class MainActivity extends AppCompatActivity {

    private Button btn;
    private TextView textView;
    private LinearLayout linearLayout;
    int i = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = findViewById(R.id.btn);
        textView = findViewById(R.id.tv1);
        linearLayout = findViewById(R.id.line1);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                runThread();
            }
        });

    }

    private void runThread(){

        new Thread() {
            @Override
            public void run() {
                while(i++ < 10) {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            textView.setText(new Date(System.currentTimeMillis()).toString() + i);
                            linearLayout.addView(textView);
                        }
                    });
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
    }
}
peviana (160 포인트) 님이 2018년 1월 15일 질문
peviana님이 2018년 1월 15일 수정
linear layout 에 orientation 이 vertical 이 맞는지 확인하세요
http://jwandroid.tistory.com/156

1개의 답변

0 추천

추가할때마다 TextView를 새로 생성해야 합니다.

runOnUiThread(new Runnable() {
	@Override
	public void run() {
		TextView createdTextView = new TextView(MainActivity.this);
		createdTextView.setText(new Date(System.currentTimeMillis()).toString() + i);
		linearLayout.addView(createdTextView);
	}
});

 

디자이너정 (42,810 포인트) 님이 2018년 1월 15일 답변
답변해주신 코드로 바꿨는데도 아무것도 안나오네요 ㅜ
...