2013-01-07 33 views
3

我用一個簡單的適配器,顯示在列表視圖中不同的文本字段串的集...我希望當我點擊在該列表視圖中特定的內容,一些TextView的應該是不可見.. 如何做到這一點?如何隱藏一個TextView在SimpleAdapter

我的代碼是

String[] from = new String[] {"ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN"}; 

int[] to = new int[] { R.id.textView_1, R.id.textView_2, R.id.textView_3, R.id.textView_4, R.id.textView_5, R.id.textView_6, R.id.textView_7}; 


Adapter adapter = new SimpleAdapter(this, Maps, R.layout.search, from, to); 
ListView lvSearch = (ListView) findViewById(R.id.listView_SearchResult); 
lvSearchResult.setAdapter(adapter); 

這裏點擊

R.id.textView_5, R.id.textView_6, R.id.textView_7 

應該是不可見

回答

4

設置屬性android:visibility="gone"在佈局TextViews R.id.textView_5, R.id.textView_6, R.id.textView_7layout.search

對於您的例子我想結果應該是這樣的:

 
<TextView android:id="@+id/textView_5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hidden" 
     android:visibility="gone"/> 
+0

我想它應該在「點擊」 – 786

5

不知道你尋找什麼在這裏,但如果你想要做的僅僅是隱藏的TextView,你可以做到以下幾點:

TextView txtView = (TextView)findViewById(R.id.textView_6); 
txtView.setVisibility(View.GONE) 

我們可以嘗試,並進一步幫助你,如果你給我們提供的Wi多一點信息。

+0

來完成這一個解決我的問題。它的工作完美 – gnganpath

2

存在對內部SimpleAdapter的方法。它被稱爲ViewBinder。嘗試包括這行代碼SimpleAdapter adapter = new SimpleAdapter(this, Maps, R.layout.search, from, to);setListAdapter(adapter);前即刻。

SimpleAdapter.ViewBinder binder = new SimpleAdapter.ViewBinder() { 
    @Override 
    public boolean setViewValue(View view, Object object, String value) { 
     System.out.println("view= "+view); 
     System.out.println("view.toString()= "+ view.toString()); 
     System.out.println("view.getId()= "+ view.getId()); 
     System.out.println("view.getVisibility()= "+ view.getVisibility()); 
     System.out.println("view.equals((TextView) view.findViewById(R.id. textView_5))= "+ view.equals((TextView) view.findViewById(R.id.textView_5))); 
     if (view.equals((TextView) view.findViewById(R.id.textView_5))) { 
      TextView textView_five = (TextView) view.findViewById(R.id. textView_5); 
      //Change color/answer/etc for textView_5 
     } 

     //OR 
     if (view instanceof TextView) { 
      //Do stuff 
      return true; 
     } 

     return false; 
    } 
}; 

adapter.setViewBinder(binder); 

setListAdapter(adapter);  

setViewValue()方法將被調用每個R.id.textView_1R.id.textView_2R.id.textView_3R.id.textView_4R.id.textView_5R.id.textView_6R.id.textView_7您在adapter有。該setViewValue()方法將被調用每個View /每次正在繪製上述R.id S的一個。