Android 自定义ListView中的SetVisibility项
我现在有个问题!我有自定义的ListView,这里有两个TextView元素。我想在ListView元素中为一个TextView设置可见性(TextView.gone)。我不知道怎么做 编写一个示例,说明如何在ListView的所有项目中隐藏TextView客户端代码 列表视图:Android 自定义ListView中的SetVisibility项,android,listview,Android,Listview,我现在有个问题!我有自定义的ListView,这里有两个TextView元素。我想在ListView元素中为一个TextView设置可见性(TextView.gone)。我不知道怎么做 编写一个示例,说明如何在ListView的所有项目中隐藏TextView客户端代码 列表视图: <ListView android:id="@+id/listResultAvia" android:layout_width="fill_parent"
<ListView
android:id="@+id/listResultAvia"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:layout_weight="1"
android:background="#ffffff"
android:cacheColorHint="#ffffff"
android:drawingCacheQuality="auto" >
<!-- Preview: listitem=@layout/item -->
</ListView>
我的程序在启动时崩溃了
添加:
我使用下面的答案,但现在我得到了空的ListView。如何修复适配器中的此问题?//
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
inflater = context.getLayoutInflater();
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_row, null);
holder.first_line=(TextView) convertView.findViewById(R.id.textview_row1);
holder.second_line=(TextView) convertView.findViewById(R.id.second_row);
convertView.setTag(holder);
}
//TODO: hiding the first_line in the listview
holder.first_line.setVisibility(View.GONE);
holder.second_line.setText("");
return (convertView);
}
//在适配器中
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
inflater = context.getLayoutInflater();
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_row, null);
holder.first_line=(TextView) convertView.findViewById(R.id.textview_row1);
holder.second_line=(TextView) convertView.findViewById(R.id.second_row);
convertView.setTag(holder);
}
//TODO: hiding the first_line in the listview
holder.first_line.setVisibility(View.GONE);
holder.second_line.setText("");
return (convertView);
}
在适配器中,您可以尝试使用此代码隐藏第二个文本视图
public View getView(int position, View convertView, ViewGroup parent){
convertView = mInflater.inflate(R.layout.your_custom_list_layout, null);
TextView textOne = (TextView)convertView.findViewById(R.id.txtOne);
TextView textTwo = (TextView)convertView.findViewById(R.id.txtTwo);
textTwo.setVisibility(View.GONE);
return convertView;
}
添加:
您可以添加一个在onClick()中切换的布尔值,然后修改getView()
在适配器中,您可以尝试使用此代码隐藏第二个文本视图
public View getView(int position, View convertView, ViewGroup parent){
convertView = mInflater.inflate(R.layout.your_custom_list_layout, null);
TextView textOne = (TextView)convertView.findViewById(R.id.txtOne);
TextView textTwo = (TextView)convertView.findViewById(R.id.txtTwo);
textTwo.setVisibility(View.GONE);
return convertView;
}
添加:
您可以添加一个在onClick()中切换的布尔值,然后修改getView()
请至少从适配器发布一些代码。您的应用程序在onCreate()上找不到textViewTimeResult2,因为它不在活动布局中,(可能不在main.xml中),textViewTimeResult2只能在适配器getView()的listItems行中找到请至少从适配器发布一些代码。您的应用程序在onCreate()上找不到textViewTimeResult2,因为它不在活动布局中,(可能不在main.xml中),textViewTimeResult2只能在适配器getView()的listItems行中找到mInflater-应该有?啊,你可以用convertView=getLayoutInflater().inflate(R.layout.custom_layout,null)
mInflater是一个LayoutInflater,它用于将xml布局实例化为其对应的视图对象-更多关于这一点以及如何在单击按钮后激活此操作的信息?只需将设置textwo
的代码包装成一个条件,单击按钮后,将条件设置为true
,然后通知您适配器,以便它将“刷新它的itemsmInflater-应该有吗?啊,您可以将该行替换为convertView=getLayoutFlater()。充气(R.layout.custom_layout,null)
mInflater是一个LayoutFlater,它用于将xml布局实例化为其对应的视图对象-更多关于这一点以及如何在单击按钮后激活此操作的信息?只需将设置textwo
的代码包装成一个条件,单击按钮后,将条件设置为true
,然后通知您适配器,以便它“刷新其项目”
boolean hideTextTwo = false;
onClick(View v){
hideTextTwo = true;
yourAdapter.notifyDatasetChanged();
}
public View getView(int position, View convertView, ViewGroup parent){
convertView = mInflater.inflate(R.layout.your_custom_list_layout, null);
TextView textOne = (TextView)convertView.findViewById(R.id.txtOne);
TextView textTwo = (TextView)convertView.findViewById(R.id.txtTwo);
if(hideTextTwo){
textTwo.setVisibility(View.GONE);
}
return convertView;
}