Android 取景器不工作

Android 取景器不工作,android,listview,view,Android,Listview,View,我正在学习这个教程。然而,它不起作用。你们能帮我怎么做吗 class Custom extends Activity { private ListView listview; private ArrayList mListItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l

我正在学习这个教程。然而,它不起作用。你们能帮我怎么做吗

class Custom extends Activity {

 private ListView listview;
 private ArrayList mListItem;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
        setContentView(R.layout.custom);

  listview = (ListView) findViewById(R.id.list_view);
  mListItem = ItemsDisplay.getItems(true);

  listview.setAdapter(new CustomListAdapter(this, R.id.list_view,mListItem));
 }

 static class ViewHolder {
        public TextView textView;
    }

    private class CustomListAdapter extends ArrayAdapter {
        private ArrayList mList; //--CloneChangeRequired
        private Context mContext;

        public CustomListAdapter(Context context, int textViewResourceId,
                ArrayList list) { //--CloneChangeRequired
            super(context, textViewResourceId, list);
            this.mList = list;
            this.mContext = context;
        }   

        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;

            final ToggleButton tb;

             System.out.println("position "+position+" mList.size"+mList.size());
             if (view == null) {

              LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              view = vi.inflate(R.layout.list_item_bn, null);
              ViewHolder holder = new ViewHolder();
              holder.textView = (TextView)convertView.findViewById(R.id.tv_name);
              view.setTag(holder);
             }

             ItemsDisplay listItem = (ItemsDisplay) mList.get(position);
             System.out.println("listItem.getName() " +listItem.getName());
                if (listItem != null) {

                 ViewHolder holder1 = (ViewHolder)view.getTag();
                 holder1.textView.setText(listItem.getName());

                }

            return view;  
        }

    }
}
我已经看过这些帖子了,但我不知道为什么我的代码仍然不起作用。 更改为:

        final ToggleButton tb;

         System.out.println("position "+position+" mList.size"+mList.size());
         if (convertView == null) {

          LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          convertView = vi.inflate(R.layout.list_item_bn, null);
          ViewHolder holder = new ViewHolder();
          holder.textView = (TextView)convertView.findViewById(R.id.tv_name);
          convertView.setTag(holder);
         }

         ItemsDisplay listItem = (ItemsDisplay) mList.get(position);
         System.out.println("listItem.getName() " +listItem.getName());
            if (listItem != null) {

             ViewHolder holder1 = (ViewHolder)convertView.getTag();
             holder1.textView.setText(listItem.getName());

            }

        return convertView;  
试试这个:

public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    ViewHolder holder;
    final ToggleButton tb;
    System.out.println("position "+position+" mList.size"+mList.size());
    if (view == null) {
        LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = vi.inflate(R.layout.list_item_bn, null);
        holder = new ViewHolder();
        holder.textView = (TextView)view.findViewById(R.id.tv_name);
        view.setTag(holder);
            }
            else {
                holder = (ViewHolder)view.getTag();
            }
    ItemsDisplay listItem = (ItemsDisplay) mList.get(position);
    System.out.println("listItem.getName() " +listItem.getName());
    if (listItem != null) {
        holder.textView.setText(listItem.getName());
        }
        return view;  
    }
希望这能奏效:- 解决方案: 您必须在“if”条件中设置tag(),在“else”部分中设置getTag()


你也能看看这段代码吗?为什么它不起作用?我只想在listview的最后一项上使用不同的布局。int lastpos=mList.size()-1;系统输出打印项次(“位置:“+position+”mlist:“+lastpos”);if(position==lastpos){view=vi.inflate(R.layout.list\u item\u record,null);holder.textView=(textView)view.findviewbyd(R.id.record\u view);}else{view=vi.inflate(R.layout.list\u item\u bn,null);holder.textView=(textView)view.findviewbyd(R.id.tv\u name)}视图.设置标签(支架);我已经就此提出了一个问题。请查收。谢谢
        public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        ViewHolder holder ;
        final ToggleButton tb;

         System.out.println("position "+position+" mList.size"+mList.size());
         if (view == null) {
          holder = new ViewHolder();
          LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          view = vi.inflate(R.layout.list_item_bn, null);

          holder.textView = (TextView)convertView.findViewById(R.id.tv_name);
          view.setTag(holder);
         }
         else{
           holder = (ViewHolder)view.getTag();
         }
         //set the list data here..
         ItemsDisplay listItem = (ItemsDisplay) mList.get(position);

         holder1.textView.setText(listItem.getName());



        return view;  
    }