Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setVisibility(View.GONE) not working for textview

Tags:

android

I am retrieving and displaying values from a database but all queries don't return the same number of columns so I have to hide the ones that are not required. java:

package com.example.testback;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.ActionBar.LayoutParams;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

public class Stations extends Activity implements OnItemSelectedListener {

    String lat,lng,marker;
    Spinner s1, s2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stations);
        // TODO Auto-generated method stub

        Display display =getWindowManager().getDefaultDisplay(); 
        int height = display.getHeight();
        int top=(int) (height/5.4);
        LinearLayout l=(LinearLayout)findViewById(R.id.linearL2);
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                   LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
        lp.setMargins(0, top,0,0);
        l.setLayoutParams(lp);

        s1 = (Spinner) findViewById(R.id.countries);
        s2 = (Spinner) findViewById(R.id.region);
        s1.setOnItemSelectedListener(this);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.Countries, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(adapter);

        Bundle extras = getIntent().getExtras();
        String name= extras.getString("name");
        DataBaseHelper myDbHelper = new DataBaseHelper(
                this.getApplicationContext());
        myDbHelper = new DataBaseHelper(this);

        try {
            myDbHelper.createDataBase();
        } catch (IOException ioe) {
            throw new Error("Unable to create database");
        }

        // Open the database
        try {

            myDbHelper.openDataBase();
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }

        // Get the readable version
        SQLiteDatabase db = myDbHelper.getReadableDatabase();
        Cursor cur;
        cur = db.rawQuery("SELECT * FROM REGIONS WHERE _id='"+name+"';", null);
        int i = 0;
        cur.moveToFirst();
        TextView v=(TextView)findViewById(R.id.address);
        v.setText(cur.getString(1));
        int index;

        index=cur.getColumnIndex("ph1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.ph1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
            v=(TextView)findViewById(R.id.tit_ph1);
            v.setVisibility(View.VISIBLE);
        } else{
            v=(TextView)findViewById(R.id.ph1);
            v.setVisibility(View.GONE);
            v=(TextView)findViewById(R.id.tit_ph1);
            v.setVisibility(View.GONE);
        }

        index=cur.getColumnIndex("ph2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.ph2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
            v=(TextView)findViewById(R.id.tit_ph2);
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.ph2);
            v.setVisibility(View.GONE);  
            v=(TextView)findViewById(R.id.tit_ph2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("fax");
        if(index!=-1){
            v=(TextView)findViewById(R.id.fax);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
            v=(TextView)findViewById(R.id.tit_fax);
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.fax);
            v.setVisibility(View.GONE); 
            v=(TextView)findViewById(R.id.tit_fax);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("email1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.email1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.email1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("email2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.email2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.email2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("dom_ph1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.dom_ph1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.dom_ph1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("dom_ph2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.dom_ph2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.dom_ph2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("dom_fax");
        if(index!=-1){
            v=(TextView)findViewById(R.id.dom_fax);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.dom_fax);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("dom_email1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.dom_email1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.dom_email1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("dom_email2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.dom_email2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.dom_email2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("int_ph1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.int_ph1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.int_ph1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("int_ph2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.int_ph2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.int_ph2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("int_fax");
        if(index!=-1){
            v=(TextView)findViewById(R.id.int_fax);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.int_fax);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("int_email1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.int_email1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.int_email1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("int_email2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.int_email2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.int_email2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("cargo_ph1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.cargo_ph1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.cargo_ph1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("cargo_ph2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.cargo_ph2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.cargo_ph2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("cargo_fax");
        if(index!=-1){
            v=(TextView)findViewById(R.id.cargo_fax);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.cargo_fax);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("cargo_email1");
        if(index!=-1){
            v=(TextView)findViewById(R.id.cargo_email1);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.cargo_email1);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndex("cargo_email2");
        if(index!=-1){
            v=(TextView)findViewById(R.id.cargo_email2);
            v.setText(cur.getString(index));
            v.setVisibility(View.VISIBLE);
        }else{
            v=(TextView)findViewById(R.id.cargo_email2);
            v.setVisibility(View.GONE);  
        }

        index=cur.getColumnIndexOrThrow("loc_lat");
        lat=cur.getString(index);
        index=cur.getColumnIndexOrThrow("loc_long");
        lng=cur.getString(index);
        index=cur.getColumnIndexOrThrow("marker");
        marker=cur.getString(index);
        /*while (cur.isAfterLast() == false) {
            //list.add(cur.getString(0));
            cur.moveToNext();
        }*/

        cur.moveToPosition(0);

        // Close
        myDbHelper.close();
    }
    public void go(View view){
        Intent i = new Intent(Stations.this, Map.class);
        i.putExtra("lat",lat);
        i.putExtra("long",lng);
        i.putExtra("marker",marker);
        startActivity(i);
        finish();
    }
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub
        List<String> list = new ArrayList<String>();
        if (s1.getSelectedItem().equals("India")) {
            list.add("Select Station");
            DataBaseHelper myDbHelper = new DataBaseHelper(
                    this.getApplicationContext());
            myDbHelper = new DataBaseHelper(this);

            try {
                myDbHelper.createDataBase();
            } catch (IOException ioe) {
                throw new Error("Unable to create database");
            }

            // Open the database
            try {

                myDbHelper.openDataBase();
            } catch (SQLException sqle) {
                sqle.printStackTrace();
            }

            // Get the readable version
            SQLiteDatabase db = myDbHelper.getReadableDatabase();
            Cursor cur;
            cur = db.rawQuery("SELECT * FROM REGIONS ORDER BY _id ASC;", null);
            int i = 0;
            cur.moveToFirst();
            while (cur.isAfterLast() == false) {
                list.add(cur.getString(0));
                cur.moveToNext();
            }

            cur.moveToPosition(0);

            // Close
            myDbHelper.close();
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("SAARC Countries")) {
            list.add("Select Station");
            list.add("Chittagong");
            list.add("Colombo");
            list.add("Dhaka");
            list.add("Kabul");
            list.add("Kathmandu");
            list.add("Male");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("Russia")) {
            list.add("Moscow");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("USA and Canada")) {
            list.add("Select Station");

            list.add("Chicago");
            list.add("Los Angeles");
            list.add("New York");
            list.add("Toronto");
            list.add("Washington DC");
            list.add("Newark Airport (EWR)");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("Southeast Asia, Australia")) {
            list.add("Select Station");
            list.add("Bangkok");
            list.add("Hongkong");
            list.add("Jatarka");
            list.add("Melbourne");
            list.add("Sydney");
            list.add("Yangon");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("Gulf and Middle East")) {
            list.add("Select Station");
            list.add("Bahrain");
            list.add("Beirut");
            list.add("Cairo");
            list.add("Dubai");
            list.add("Muscat");
            list.add("Tehran");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        }

        else if (s1.getSelectedItem().equals("UK and Europe")) {
            list.add("Select Station");

            list.add("Amsterdam");
            list.add("Frankfurt");
            list.add("London");
            list.add("Madrid");
            list.add("Zurich");
            list.add("Paris");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        } else if (s1.getSelectedItem().equals("Far East")) {
            list.add("Select Station");

            list.add("Osaka");
            list.add("Seoul");
            list.add("Tokyo");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, list);
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(dataAdapter);
        }
        s2.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                if (s2.getSelectedItem().toString() != "Select Station") {
                    String s = s2.getSelectedItem().toString();
                    Intent i = new Intent(Stations.this, Stations.class);
                    i.putExtra("name", s);
                    startActivity(i);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

}

The xml for that element is:

<LinearLayout
    android:id="@+id/linearLayout4"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

        <TextView
            android:id="@+id/tit_fax"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".4"
            android:text="FAX"
            android:visibility="visible"
            android:textSize="14dp" />

        <TextView
            android:id="@+id/fax"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight=".6"
            android:visibility="visible"
            android:text=" " />
</LinearLayout>

But it is still visible when it should have been gone

like image 655
AnishaJain Avatar asked Jun 30 '26 08:06

AnishaJain


2 Answers

On my 4.1.2 device, TextView (it was actually an AutoCompleteTextView) did not want to accept setVisibility(View.GONE) because the box had focus. The problem was this was the last element on the screen, so I spent a while before I found an innocent target to shift the focus to. I had to use setFocusableInTouchMode(true) for that other view, because otherwise its requestFocus() was silently ignored, as well as the TextView's clearFocus().

like image 64
Alex Cohn Avatar answered Jul 02 '26 23:07

Alex Cohn


v=(TextView)findViewById(R.id.fax);
v1=(TextView)findViewById(R.id.tit_fax);

keep this in globally then its work,no need to use View.VISIBLE,Keep the variable unique

Don't use this in your XML,because it get confused

android:visibility="visible"
like image 25
learner Avatar answered Jul 02 '26 23:07

learner



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!