Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何刷新视图_Java_Android - Fatal编程技术网

Java 如何刷新视图

Java 如何刷新视图,java,android,Java,Android,有几个问题与此相关,但我找不到任何对我有帮助的东西。我对安卓工作室还相当陌生。我的情况如下: 我想做的是,当我点击触摸屏时,它会存储我在Globals.touchX和Globals.touchY中按下的位置的x和y坐标,并将它们显示在屏幕上。似乎发生的是,当我按下屏幕时,触摸坐标被正确存储,但显示它们的视图不会刷新以显示它们的新值。根据我能找到的答案,我尝试调用invalidate(),但没有成功。我还看到一些人建议找一个训练员。如果是这样的话,有人能尽可能简单地解释一下它们是什么以及它们是如何

有几个问题与此相关,但我找不到任何对我有帮助的东西。我对安卓工作室还相当陌生。我的情况如下: 我想做的是,当我点击触摸屏时,它会存储我在Globals.touchX和Globals.touchY中按下的位置的x和y坐标,并将它们显示在屏幕上。似乎发生的是,当我按下屏幕时,触摸坐标被正确存储,但显示它们的视图不会刷新以显示它们的新值。根据我能找到的答案,我尝试调用invalidate(),但没有成功。我还看到一些人建议找一个训练员。如果是这样的话,有人能尽可能简单地解释一下它们是什么以及它们是如何工作的吗。我的代码如下。谢谢:)

activity_nonmultiplier_six_game.xml:

<?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);
    }






}