I have a button that disappears 3 seconds after I press on it. I would like to make it visible again by touching the screen.
public class MainActivity extends Activity {
Runnable buttonRunnable;
Handler buttonHandler = new Handler();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button=(Button)findViewById(R.id.myButton);
buttonRunnable = new Runnable() {
public void run() {
button.setVisibility(View.GONE);
}
};
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
buttonHandler.postDelayed(buttonRunnable, 3000);
}
});
}
private OnTouchListener buttonOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final Button button=(Button)findViewById(R.id.myButton);
final LinearLayout linearLayout=(LinearLayout)findViewById(R.id.myLinearLayout);
linearLayout.setClickable(true);
linearLayout.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
button.setVisibility(View.VISIBLE);
}
});
return true;
}
};
}
I am able to hide the button after 3 seconds but I cannot make it visible again.
I have fixed the problem:
public class MainActivity extends Activity{
Runnable buttonRunnable;
Handler buttonHandler = new Handler();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final LinearLayout linearLayout=(LinearLayout)findViewById(R.id.myLinearLayout);
final Button button=(Button)findViewById(R.id.myButton);
buttonRunnable = new Runnable() {
public void run() {
button.setVisibility(View.INVISIBLE);
}
};
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
buttonHandler.postDelayed(buttonRunnable, 3000);
}
});
linearLayout.setOnTouchListener(buttonOnTouchListener);
}
private OnTouchListener buttonOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final Button button=(Button)findViewById(R.id.myButton);
button.setVisibility(View.VISIBLE);
return true;
}
};
}