制作Listview仅显示一些项目

时间:2014-01-04 12:34:14

标签: java android listview if-statement

快速提问,我想创建一个listview,它只显示数组中的某些项,存储在名为MyArray的不同类中。在这种情况下,我希望列表视图仅显示标题为“example”的项目。是否有可能做到这一点?我还需要知道这一点,以便从数组中删除项目(“”项目)不会出现在列表视图中。谢谢,我已经包含了我的整个listview代码以避免混淆!希望这不是一个太复杂的问题!

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;

            }
        }

    }

1 个答案:

答案 0 :(得分:0)

我不会在你的问题中推荐所描述的方法。如果您不需要ListView中的项目,请不要在Array或List中传递它们。做一些预过滤。如果你动态想要在加载后修改ListView的内容,那么,不同的主题和更复杂。 ListAdapter取决于其中的项目数,有getCount,getItem(int position)等方法,你必须实现所有这些以避免NULL - 指针或索引 - 超出绑定的execptions。