2013-01-07 30 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的一个。