Java 如何刷新视图
有几个问题与此相关,但我找不到任何对我有帮助的东西。我对安卓工作室还相当陌生。我的情况如下: 我想做的是,当我点击触摸屏时,它会存储我在Globals.touchX和Globals.touchY中按下的位置的x和y坐标,并将它们显示在屏幕上。似乎发生的是,当我按下屏幕时,触摸坐标被正确存储,但显示它们的视图不会刷新以显示它们的新值。根据我能找到的答案,我尝试调用invalidate(),但没有成功。我还看到一些人建议找一个训练员。如果是这样的话,有人能尽可能简单地解释一下它们是什么以及它们是如何工作的吗。我的代码如下。谢谢:) activity_nonmultiplier_six_game.xml:Java 如何刷新视图,java,android,Java,Android,有几个问题与此相关,但我找不到任何对我有帮助的东西。我对安卓工作室还相当陌生。我的情况如下: 我想做的是,当我点击触摸屏时,它会存储我在Globals.touchX和Globals.touchY中按下的位置的x和y坐标,并将它们显示在屏幕上。似乎发生的是,当我按下屏幕时,触摸坐标被正确存储,但显示它们的视图不会刷新以显示它们的新值。根据我能找到的答案,我尝试调用invalidate(),但没有成功。我还看到一些人建议找一个训练员。如果是这样的话,有人能尽可能简单地解释一下它们是什么以及它们是如何
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.alexandermain.example_5.NonmultiplierSixGame">
<com.example.alexandermain.example_5.views.NonmultiplierSixView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nonmultiplierSixView"
/>
您确定在正确的位置调用了
invalidate()
?尝试在开关中的break语句之前,在每种情况下使用invalidate()
。您可以尝试使用recreate()代码>现在我在nonmultipliersXView.setOnTouchListener(这个)之后有了它;在非多重乘子博弈中。我会试着把开关插上。当我把它放在你建议的地方时,它就起作用了。谢谢!:)
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.alexandermain.example_5.NonmultiplierSixGame">
<com.example.alexandermain.example_5.views.NonmultiplierSixView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nonmultiplierSixView"
/>
public class NonmultiplierSixView extends View{
public NonmultiplierSixView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int x = getWidth();
int y = getHeight();
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
canvas.drawPaint(paint);
paint.setColor(Color.parseColor("#da4747"));
canvas.drawText(Integer.toString(Globals.touchX), 27 * x / 30, 70 * y / 84, paint);
}
}