当我的应用程序启动时,用户需要在实际操作开始之前触摸屏幕。我有一个 textView
,它给出了触摸屏幕的提示。
触摸屏幕后,我希望文本不可见。现在,textView
永远不会消失,并且始终位于前面。
public class MainActivity extends Activity implements OnGestureListener
{
public boolean touched = false;
TextView mMyView;
public void onTouch()
{
mMyView.setVisibility(View.GONE);
touched = true;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
mMyView = (TextView)findViewById(R.id.textView6);
if(touched == true)
{
}
}
}
最佳答案
1.如果您想查看是否为true/false
,请始终使用if(something)
,而不是编写if(something == true)
code> [某物是一个 boolean 值,赋值为 true。]
2.如果您将 View xml 指向使用 android:onClick
的方法,如下所示,
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="onTouch" />
。
实现 OnGestureListener
有什么意义?
如果我这样做onCreate
我会初始化我的 View
View myView = findViewById(R.id.my_view);
3.如果我真的想要触摸,我会这样做
myView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// ... Respond to touch events --> tv.setVisibility(View.INVISIBLE);
return true; // if you return false with this then the listener will not be called for the subsequent ACTION_MOVE and ACTION_UP string of events.
}
});
- 现在你可以看到第三个参数中有一个
MotionEvent
,你可以识别 ActionACTION_DOWN
、ACTION_MOVE
和ACTION_UP
现在想想你曾经使用过它们吗?你脑子里有一个关于触摸的想法,所以尝试使用触摸事件..但你没有使用它们。因此,它的作用与您的情况下 onClickListner
的作用相同。如果您想要动议,请使用我给出的第三个动议。
但是你可以简单地使用
// view is the background layout
myView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Do something here --> Hide your text tv.setVisibility(View.INVISIBLE);
}
});
那些 View onClickListner
或 setOnTouchListener
您可以直接在 onCreate
中使用它们,或者将它们保留在方法中,您可以从 onCreate
。为什么要保留 boolean 值?没什么大不了的
注意,我将 myView 视为背景布局,而不是您的 textView ,背景是您单击/触摸的布局
关于java - android - 让textView不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41313537/