簡體   English   中英

使Listview僅顯示某些項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM