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;
}