简体   繁体   中英

Setting a TextView to visible from invisible based on an if statement

I have several strings of text on a screen that are set to invisible when the application starts. When a button is clicked on another screen, I want a specific string to become visible. Ultimately I want to have a few strings, of the several, become visible as a result of clicking this button.

    public void buttona0Click(View view){
    setContentView(R.layout.report_screen);
    buttonClicked2 = 1;
    if(buttonClicked1==1){
        setVisibility(R.id.textView2.VISIBLE);
        }
    }

I am primarily looking for guidance on this line

    setVisibility(R.id.textView2.VISIBLE);

I am new to programming in general, so I don't know if what I've said makes sense to most of you. Is .setText an alternative?

Write your own algo:

  1. Use one boolean
  2. view VISIBLE and GONE based own above boolean variable

You need to instantiate your TextView first. So the easiest way to begin is to declare them before onCreate() and outside of any other method so they are member variables

public class MyActivity extends Activity
{
    TextView tv1, tv2, etc...;

    public void onCreate(...)
    {
        super.onCreate(...);
        setContentView(R.layout.my_layout);
        tv1 = (TextView) findViewById(R.id.textView1);
        ...
     }

Then in your onClick() change the Visibility which takes an int value

 public void buttona0Click(View view){
     buttonClicked2 = 1;
     if(buttonClicked1==1){
         tv1.setVisibility(View.VISIBLE);
    }
}

Note: please don't include the "..." above in your code. That is just omitted code that I assume you know how to handle already. Also, I took out setContentView() from the onClick() method because typically this should only be done once in onCreate() .

I'm not sure about the logic inside there because I don't know what the buttonClicked1 variables are for but that is how to do the Visibility .

setVisibility() Docs

Is .setText an alternative?

This will simply set the text so if you have it already set in your xml then you don't need to...you can just change the Visibility as you are trying to do. If you haven't set it then you will need to with something like

tv1.setText("Hello World");  // input your own String or String resource

Make sure you call setVisibility(View.GONE) for all your TextViews in onCreate() after setContentView() . Then in your if clause set the visibility of selected textview to View.VISIBLE - textview.setVisibility(View.VISIBLE)

First findViewById of the TextView and in onClick function of your button set visibility of that textView as VISIBLE

TextView textView = (TextView) findViewById(R.id.textView1);


 public void buttona0Click(View view){
     buttonClicked2 = 1;
    if(buttonClicked1==1){
        textView.setVisibility(view.VISIBLE);
        }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM