user5523686
user5523686

Reputation:

How make layout invisible

I am developing an Android app.

I have some attributes that stored in SharedPreferences.

I need layout - gone until value stored in shared preference haven't text.

When the value is stored, I need to make layout visible.

zakazat.Click += delegate {
            var intent = new Intent (this, typeof(CartActivity));
            intent.PutExtra ("title", (string)(firstitem ["post_title"]));
            intent.PutExtra ("price", (string)(firstitem ["price"] + " грн"));
            intent.PutExtra ("weight", (string)(firstitem ["weight"] + "г"));

            StartActivity (intent);

            ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (this);
            ISharedPreferencesEditor editor = prefs.Edit ();

            editor.PutString ("title", (string)(firstitem ["post_title"]));
            editor.PutString ("price", (string)(firstitem ["price"] + " грн"));
            editor.PutString ("weight", (string)(firstitem ["weight"] + "г"));

           editor.Apply ();

        };

In other activity:

private void Display (){
        LinearLayout display2 = FindViewById<LinearLayout> (Resource.Id.linearLayout12);        
        //LinearLayout display = FindViewById<LinearLayout> (Resource.Id.linearLayout13);           
        TextView productname = FindViewById<TextView> (Resource.Id.posttittle);
        TextView price = FindViewById<TextView> (Resource.Id.price);
        TextView weight = FindViewById<TextView> (Resource.Id.weight);


        productname.Text = Intent.GetStringExtra ("title");
        price.Text = Intent.GetStringExtra("price");
        weight.Text = Intent.GetStringExtra("weight");


        display2.Visibility = ViewStates.Visible;
        ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (this);

        string product = prefs.GetString ("title", "");
        string _price = prefs.GetString ("price", "");
        string _weight = prefs.GetString ("weight", "");
            productname.Text = product;
        price.Text = _price;
            weight.Text = _weight;






        //price.Text = Intent.GetStringExtra("price");
        //weight.Text = Intent.GetStringExtra("weight");
        //display2.Visibility = ViewStates.Visible;
        productname.Visibility = ViewStates.Visible;
        price.Visibility = ViewStates.Visible;
        weight.Visibility = ViewStates.Visible;
    }

How I can do it?

Upvotes: 1

Views: 94

Answers (1)

Pankaj K Sharma
Pankaj K Sharma

Reputation: 230

by default your view visibility setVisibility(Gone) after then. First you check after every second that your sharedpreference value is not equal to default value if it is true then your view visibility is set visibility visible try this code I am not sure but I think this code will success.

Thread t = new Thread() {

  @Override
  public void run() {
    try {
      while (!isInterrupted()) {
        Thread.sleep(1000);
        runOnUiThread(new Runnable() {
          @Override
          public void run() {
       SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String value = shared.getString("key","Default");
if(!value.equalsto("Default"){
view.setVisibility(View.VISIBLE);
}
          }
        });
      }
    } catch (InterruptedException e) {
    }
  }
};

t.start();

Upvotes: 2

Related Questions