开发者

Hiding ListView

I want an invisible list view - I need to call list.setVisibility(View.INVISIBLE), but I have used a ListActivity and there is no ListView in my code.

How do I call this function or get this property? Please help me in achieving this goal.

public class list extends ListActivity {
ListView lst;
    private LayoutInflater mInflater;
    private Vector<RowData> data;
    RowData rd;
    static final String[] title = new String[] {
            "*New*Apple iPad Wi-Fi (16GB)", "7 Touch Tablet -2GB Google Android",   
    "Apple iPad Wi-Fi (16GB) Rarely Used ","Apple iPad Wi-Fi (16GB) AppleCase"      };
    static final String[] detail = new String[] {
            "1h 37m Shipping: $10.00","1h 39m Shipping: Free","58m 6s Shipping: $10.00","59m 30s Shipping: $10.95"  };
    private Integer[] imgid = {
      R.drawable.icon,R.drawable.icon,R.drawable.icon,
      R.drawabl开发者_JS百科e.icon
    };
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    lst=(ListView)findViewById(R.id.list);
    mInflater = (LayoutInflater) getSystemService(
    Activity.LAYOUT_INFLATER_SERVICE);
    data = new Vector<RowData>();
    for(int i=0;i<title.length;i++){
    try {
        rd = new RowData(i,title[i],detail[i]);
        } catch (ParseException e) {
            e.printStackTrace();
       }
       data.add(rd);
    }
       CustomAdapter adapter = new CustomAdapter(this, R.layout.list,
                                         R.id.title, data);
       setListAdapter(adapter);
       //getListView().setTextFilterEnabled(true);
    }
       public void onListItemClick(ListView parent, View v, int position,
                                                                    long id) {          
       Toast.makeText(getApplicationContext(), "You have selected "
                        +(position+1)+"th item",  Toast.LENGTH_SHORT).show();
    }
           private class RowData {
           protected int mId;
           protected String mTitle;
           protected String mDetail;
           RowData(int id,String title,String detail){
           mId=id;
           mTitle = title;
           mDetail=detail;
        }
           @Override
           public String toString() {
                   return mId+" "+mTitle+" "+mDetail;
           }
    }
      private class CustomAdapter extends ArrayAdapter<RowData> {
      public CustomAdapter(Context context, int resource,
                            int textViewResourceId, List<RowData> objects) {               
     super(context, resource, textViewResourceId, objects);
    }
          @Override
           public View getView(int position, View convertView, ViewGroup parent) {   
           ViewHolder holder = null;
           TextView title = null;
           TextView detail = null;
           ImageView i11=null;
           RowData rowData= getItem(position);
           if(null == convertView){
                convertView = mInflater.inflate(R.layout.list, null);
                holder = new ViewHolder(convertView);
                convertView.setTag(holder);
     }
                 holder = (ViewHolder) convertView.getTag();
                 title = holder.gettitle();
                 title.setText(rowData.mTitle);
                 detail = holder.getdetail();
                 detail.setText(rowData.mDetail);                                                     
                 i11=holder.getImage();
                 i11.setImageResource(imgid[rowData.mId]);
                 return convertView;
    }
                private class ViewHolder {
                private View mRow;
                private TextView title = null;
                private TextView detail = null;
                private ImageView i11=null; 
                public ViewHolder(View row) {
                mRow = row;
     }
             public TextView gettitle() {
                 if(null == title){
                     title = (TextView) mRow.findViewById(R.id.title);
                    }
                return title;
             }     
             public TextView getdetail() {
                 if(null == detail){
                      detail = (TextView) mRow.findViewById(R.id.detail);
                        }
               return detail;
             }
            public ImageView getImage() {
                 if(null == i11){
                      i11 = (ImageView) mRow.findViewById(R.id.img);
                                          }
                    return i11;
            }
         }
       } }


Inside a ListActivity you can call getListView(), so you can basically do:

getListView().setVisibility(View.INVISIBLE);


ListActivity hides the ListView from you, but you can get it by calling getListView(). So you could have add method to your ListActivity:

void setListVisible ( boolean isVisible ) {
    getListView().setVisibility( isVisible ? View.VISIBLE : View.INVISIBLE );
}

Call setListVisible(false) to hide the list, and setListVisible(true) to show the list.

The isVisible ? View.VISIBLE : View.INVISIBLE line sets the visibility to View.VISIBLE if isVisible == true, otherwise it sets it to View.INVISIBLE.


Listview list=(ListView) findviewbyid(R.id.list);
list.setVisibilty(View.Gone);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜