[英]Making Listview Displaying only some items
快速问题,我想创建一个列表视图,该列表视图仅显示存储在另一个名为MyArray的类中的数组中的某些项目。 在这种情况下,我希望列表视图仅显示标题为“ example”的项目。 是否有可能做到这一点? 我还需要知道这一点,以使从数组中删除的项目(“”项目)不会出现在列表视图中。 谢谢,我已经包含了整个列表视图代码,以避免造成混淆! 希望这不是一个太复杂的问题!
public class List extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
setListAdapter(new MyAdapter(this,
android.R.layout.simple_list_item_1, R.id.textView1,
MyArray.myarr));
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
String index = (String)adapter.getItemAtPosition(position);
//Intent myIntent = new Intent(List.this, Show.class);
//List.this.startActivity(myIntent);
Intent i = new Intent(getApplicationContext(), Show.class);
i.putExtra("index", ""+position);
startActivity(i);
}
});
}
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int resource,
int textViewResourceId, String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
LayoutInflater inflator = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE);
View row = inflator.inflate(R.layout.customlist, parent, false);
String[] items = MyArray.myarr;
ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
TextView tv = (TextView) row.findViewById(R.id.textView1);
if (items[position].equalsIgnoreCase("Example")){
}
else
{
tv.setText(items[position]);
iv.setImageResource(R.drawable.base);
}
return row;
}
}
}
在您的问题中,我不建议您使用上述方法。 如果您不需要ListView中的项目,则不要在数组或列表中传递它们。 做一些预过滤。 如果您要在ListView的内容加载后动态地对其进行修改,那么可以选择其他主题,并且更为复杂。 ListAdapter取决于其中的项目数,有诸如getCount,getItem(int position)之类的方法,您将必须实现所有这些方法,以避免NULL(指针或索引)超出范围执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.