0

XML にある Textview を自分のコードで生成された値で更新する方法について、いくつかの提案が必要です。

プログラムはキャンバスを通る直線を描画します。textView に線の先端の x 値を反映させたいと思います。

次のように私のコード:

package com.example.threadexperiment1;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

    lineDrawing InfiniteLine;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        InfiniteLine = new lineDrawing (this);
        setContentView(R.layout.activity_main);

        Thread thread = new Thread(InfiniteLine);
        thread.start();

        RelativeLayout RL1 = (RelativeLayout)findViewById(R.id.RelativeLayout1);
        RL1.addView(InfiniteLine);

    }
    public class lineDrawing extends View implements Runnable {

        float x=100, y=100;
        Paint lineColour = new Paint ();
        TextView TV1 = (TextView)findViewById(R.id.textView1);

        //Constructor
        public lineDrawing(Context context) {                               
            super(context);
            lineColour.setColor(Color.BLACK);   
        }

        //ondraw codes
        @Override
        public void onDraw (Canvas canvas){
            canvas.drawLine(0,0,x,y,lineColour);

            if (x==500){
                x=0;
                y=0;
            }

            invalidate();
        }

        @Override
        public void run() {
            while (!Thread.currentThread().isInterrupted()) {

            try {
            Thread.sleep(250);
                } 

            catch (Exception e) {}
                x+=10;
                y+=10;
            }

        }

    }

}
4

1 に答える 1

1

スレッド内で textView.setText(string) を試してください。

于 2013-03-08T15:16:13.500 に答える