Графика onDraw c событием

191
11 марта 2017, 01:37

Почему у меня при запуске не отображается TextView и как правильно реализовать смену текста в активити, я сделал через геттер.

Класс MainActivity

package panda11v48.com.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView txtView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txtView = (TextView)findViewById(R.id.textView);
    RectButton draw2D = new RectButton(this);
    setContentView(draw2D);
}
public TextView getTextView() {
    return txtView;
 }
}

Класс RectButton

package panda11v48.com.myapplication;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class RectButton extends View {
boolean isClicked = false;
MainActivity obj = new MainActivity();
TextView tv = obj.getTextView();
Rect rect = new Rect(100, 300, 400, 700);
public RectButton(Context context) {
    super(context);
}
protected void SetText(){
    if(isClicked = true) {
        tv.setText("true");
    }else{
        tv.setText("false");
    }
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    if (isClicked)
    {
        paint.setColor(Color.RED);
    } else
    {
        paint.setColor(Color.BLACK);
    }
    canvas.drawRect(rect , paint);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
    int action = event.getActionMasked();

    if (action == MotionEvent.ACTION_UP)
    {
        int x = (int) event.getX();
        int y = (int) event.getY();
        if ((x > rect.left & x < rect.right) &&
                (y > rect.top & x < rect.bottom))
        {
            isClicked = (isClicked)? false:true;  //нажата кнопка
            invalidate(); //перерисуем view
            SetText();
        }
    }

    return true;
}

}

READ ALSO
Как повторно выполнить animate?

Как повторно выполнить animate?

Написал вот так на нажатие button-аПри первом нажатий все отлично выполнилась - фигура textView5 опустилась на 300 пикселей вниз

207
Поиск фрагмента текста в файле от фрагмента до символа

Поиск фрагмента текста в файле от фрагмента до символа

В этом классе я ищу фграгмент текста в файле по полному совпадениюКак сделать так что-бы после полного совпадения программа считывала строку...

283
Перенос праздничных дней

Перенос праздничных дней

Доброго времени сутокНеобходимо сделать так, чтоб при выпадании дня на праздничный день, дата сдвинулась на следующий день

186
Ознакомительное activity [требует правки]

Ознакомительное activity [требует правки]

Как реализовать это ознакомительное диалоговое окошко с показом возможностей приложения

227